在 C++ 中使用 stl 列表和类

Posted

技术标签:

【中文标题】在 C++ 中使用 stl 列表和类【英文标题】:using stl list and class in C++ 【发布时间】:2013-02-23 21:59:02 【问题描述】:

我需要写什么(在“?!?!?!”) 如果我想通过迭代器iter 打印所有名称? 该类只有名称,c

//the code
    class H 
        string name;
    public :
        H (string n="WWW"): name(n)
        string getName()constreturn 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 &lt;&lt; (*iter)-&gt;getName() &lt;&lt; '\n';

或者你想要的任何分隔符,除了换行符。

另外,您的insert 行是错误的,因为h1h2 的类型为H,而容器的类型为H*

【讨论】:

@ChristianRapp:这是不正确的。 insert 增加了容器的大小,所以虽然它们都插入到相同的位置,但结果是列表包含两个元素。

以上是关于在 C++ 中使用 stl 列表和类的主要内容,如果未能解决你的问题,请参考以下文章