gpt4 book ai didi

c++ - 如何在 C++ 中使用迭代器进行打印?

转载 作者:太空宇宙 更新时间:2023-11-04 16:20:24 25 4
gpt4 key购买 nike

我正在用 VC++ 编写程序。在这里,我声明类产品和客户端。在客户端中,我使用函数列表 initProduct(),其中 list::iterator i;已使用。我无法使用迭代器显示列表。这是我的代码:

#include "StdAfx.h"
#include <iostream>
#include <string>
#include <list>
#include <iterator>
using namespace std;
class Product
{
int item_code;
string name;
float price;
int count;
public:
void get_detail()
{
cout<<"Enter the details(code,name,price,count)\n"<<endl;
cin>>item_code>>name>>price>>count;
}

};

class Client
{
public:

list<Product> initProduct()
{
char ans='y';
list<Product>l;
list<Product>::iterator i;
while(ans=='y')
{
Product *p = new Product();
p->get_detail();
l.push_back(*p);
cout<<"wanna continue(y/n)"<<endl;
cin>>ans;
}
cout<<"*******"<<endl;

for(i=l.begin(); i!=l.end(); i++)
cout << *i << ' '; //ERROR no operator << match these operand
return l;
}
};
int main()
{
Client c;
c.initProduct();
system("PAUSE");
}

最佳答案

您必须实现以下功能

class Product {
// ...
friend std::ostream& operator << (std::ostream& output, const Product& product)
{
// Just an example of what you can output
output << product.item_code << ' ' << product.name << ' ';
output << product.price << ' ' << product.count;
return output;
}
// ...
};

您将函数声明为该类的友元,因为它必须能够访问 Product 的私有(private)属性。

关于c++ - 如何在 C++ 中使用迭代器进行打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17445630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com