在 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 列表和类的主要内容,如果未能解决你的问题,请参考以下文章

(C++) 如何将 stl 列表声明为 extern?

无法将派生类 push_back() 推入 C++ 中的 STL 列表

C++ STL 列表大小

使用 STL 列表获取最高值

如何将 C++ 本机对象编组到托管 C++ CLI

具有类似 STL 接口的 Python 列表