2011-04-20 61 views
1

快速的问题。 我有一个列表,我只是在list上添加了一个元素。 但是当我打印出myList.size()时,它会返回18?即使有一个元素?C++列表,获取列表中的元素数量?

要添加我的元素我使用:myList.push_back(element);

+3

你是如何构建你的列表? – 2011-04-20 04:56:54

+6

你可以发布这样做的代码(即创建列表,推送一个元素,并打印大小为18)? – 2011-04-20 05:00:24

+1

很遗憾,我们有四个人不得不猜测你的代码的答案。你为什么不...先给我们看你的问题? – sehe 2011-04-20 09:50:30

回答

3

§23.3.6说:

成员函数size()返回容器中的元件的数目。

这意味着

  • 1)你有一个破碎的C++环境下,或

  • 2)你,不知何故,增加了更多的元素到列表中。

不幸的是,很难说哪种情况,因为你还没有发布的足够信息。最好的是一个小而完整的例子,它演示你正在做什么,描述发生了什么,以及你期望发生什么。

0

如果我没看错你想要做这样的事情...我进行快速搜索,发现如下..

int main() 
{ 
    list<int> myints; 
    cout << "0. size: " << (int) myints.size() << endl; 

    for (int i=0; i<10; i++) myints.push_back(i); 
    cout << "1. size: " << (int) myints.size() << endl; 

    myints.insert (myints.begin(),10,100); 
    cout << "2. size: " << (int) myints.size() << endl; 

    myints.pop_back(); 
    cout << "3. size: " << (int) myints.size() << endl; 

    return 0; 
} 
1

,我能想到的另一种可能性是,该名单已经使用下面的构造函数在有限尺寸创造:

explicit list (size_type n, const T& value= T(), const Allocator& = Allocator()); 
0

在开始做MyList.clear()然后推动因素,最后检查大小。