2013-02-23 39 views
0

如果我想通過迭代器iter打印所有名稱,我需要寫什麼(在「?!?!?!」中) ? 類只有名,C在C++中使用stl列表和類

//the code 
    class H { 
     string name; 
    public : 
     H (string n="WWW"): name(n){} 
     string getName()const{return name;}; 
    }; 

    void main() 
    { 
     H h1("HHH"); 
     H h2; 
     list<H*> HH; 
     list<H*>::iterator iter=HH.begin(); 

     HH.insert(iter,h1); 
     HH.insert(iter,h2); 

     for (; iter != HH.end(); iter++) 
      cout<<iter //?!?!?! 
    }              

回答

1

std::cout << (*iter)->getName() << '\n';

或任何分隔你想換行除外。

而且,你insert行是錯誤的,因爲h1h2有型H,而容器是H*

+0

這就是問題(H *)。 謝謝! – YkI 2013-02-24 08:02:08

+0

@ChristianRapp:這是不正確的。 'insert'增加了容器的大小,所以儘管它們都被插入到相同的位置,結果是該列表包含兩個元素。 – 2013-02-25 09:13:35