我正在用VC++寫一個程序。在這裏,我聲明類產品和客戶端。在客戶端我使用函數列表initProduct()在列表:: iterator我;我使用迭代器無法顯示列表。 這是我的代碼:如何在C++中使用迭代器打印?
#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");
}
它不會工作,因爲您正試圖''輸出'Product'類型的操作數。你不能''所有的東西'。<< <<'操作數沒有你剛創建的類型的實現。我不知道你真的想要打印什麼。 –
不要在堆上創建'Product',然後將其複製到'list'中,因爲堆中的副本正在泄漏內存。 – rwols