快速的问题。 我有一个列表,我只是在list
上添加了一个元素。 但是当我打印出myList.size()
时,它会返回18
?即使有一个元素?C++列表,获取列表中的元素数量?
要添加我的元素我使用:myList.push_back(element)
;
快速的问题。 我有一个列表,我只是在list
上添加了一个元素。 但是当我打印出myList.size()
时,它会返回18
?即使有一个元素?C++列表,获取列表中的元素数量?
要添加我的元素我使用:myList.push_back(element)
;
§23.3.6说:
成员函数
size()
返回容器中的元件的数目。
这意味着
1)你有一个破碎的C++环境下,或
2)你,不知何故,增加了更多的元素到列表中。
不幸的是,很难说哪种情况,因为你还没有发布的足够信息。最好的是一个小而完整的例子,它演示你正在做什么,描述发生了什么,以及你期望发生什么。
如果我没看错你想要做这样的事情...我进行快速搜索,发现如下..
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;
}
,我能想到的另一种可能性是,该名单已经使用下面的构造函数在有限尺寸创造:
explicit list (size_type n, const T& value= T(), const Allocator& = Allocator());
在开始做MyList.clear()
然后推动因素,最后检查大小。
你是如何构建你的列表? – 2011-04-20 04:56:54
你可以发布这样做的代码(即创建列表,推送一个元素,并打印大小为18)? – 2011-04-20 05:00:24
很遗憾,我们有四个人不得不猜测你的代码的答案。你为什么不...先给我们看你的问题? – sehe 2011-04-20 09:50:30