【发布时间】:2020-05-04 23:17:37
【问题描述】:
我有这样的东西,其中 Client 和 Order 是类:
std::vector<std::pair<Client,Order>> pair;
pair.push_back(std::make_pair(Client(2,"Anca"),Order(3,1)));
pair.push_back(std::make_pair(Client(16,"Maria"),Order(1,3)));
pair.push_back(std::make_pair(Client(29,"Alex"),Order(10,5)));
class Client{
private:
int dateWhenOrderWasPlaced;
std::string clientName;
public:
Client(int date,std::string name){
dateWhenOrderWasPlaced=date;
clientName=name;
}
class Order{
private:
int amountPizza;
int pizzaAge;
public:
Order(int amPizza,int agePizza){
amountPizza=amPizza;
pizzaAge=agePizza;
}
我不知道如何打印这个。我尝试了很多方法:
void print(std::vector<std::pair<Client,Order>> pair){
for(const auto& it : pair){
std::cout << "First: "<<pair[it].first<< ", Second: " << pair[it].second <<std::endl;
}
}
还有这个:
void print(std::vector<std::pair<Client,Order>> pair){
for(const auto& it : pair){
std::cout << "First: "<<it.first<< ", Second: " << it.second <<std::endl;
}
}
并且在这两种方式中我都有错误(第一个 - 没有运算符 [] 和第二个,没有运算符
【问题讨论】:
-
您需要为
Client和Order提供operator<<。 -
我想过这个问题,但你能写信告诉我这应该是什么样子吗?我不知道..
-
看到这个question
-
如果一个复杂的案例失败了,看看更简单的案例,看看哪里出了问题。你能打印成对这些对象的向量吗?如果没有,你能打印一对这样的对象吗?如果没有,您可以单独打印这些对象中的每一个吗?在您掌握基础知识之前,不要让自己陷入复杂之中。 (查看更简单的案例也可以帮助您为 Stack Overflow 写一个更有针对性的问题。)
标签: c++ vector printing std-pair