- 518 名前:デフォルトの名無しさん [2008/07/29(火) 22:26:11 ]
- class hoge{
private: std::list<int> foo; public: void setfoo(std::list<int> foo){ this->foo.clear(); std::list<int>::iterator itr; for(itr=foo.begin();itr!=foo.end();itr++) this->foo.push_back(*itr); } std::list<int> getfoo() const{ return foo; } }; int main(){ hoge hoge0; std::list<hoge> hogehoge; std::list<int> tmp; tmp.push_back(1); tmp.push_back(2); hoge0.setfoo(tmp); std::list<int>::iterator tmpitr = hoge0.getfoo().begin(); hogehoge.push_back(hoge0); std::list<int>::iterator itr = (*hogehoge.begin()).getfoo().begin(); std::cout << *itr << "," << *(++itr); } このコードで、最後に"1,2"と表示されて欲しいところが、"0,0"となってしまいます。 どこが悪いのかがわからず困っています。よろしければ教えていただけないでしょうか…。
|

|