快速提问。
我有一个列表,我只是在list
中添加了一个元素。
但是当我打印myList.size()
时,它会返回18
?即使有一个元素?
要添加我的元素,我使用:myList.push_back(element)
;
答案 0 :(得分:5)
§23.3.6说:
成员函数
size()
返回容器中元素的数量。
这意味着
1)您的C ++环境破碎,或者
2)您以某种方式在列表中添加了更多元素。
不幸的是,由于您没有发布足够的信息,因此很难分清楚是哪种情况。什么是好的是一个小的,完整的例子,展示你想要做什么,描述发生了什么以及你期望发生什么。
答案 1 :(得分:3)
我能想到的另一种可能性是使用以下构造函数创建了有限大小的列表:
explicit list ( size_type n, const T& value= T(), const Allocator& = Allocator() );
答案 2 :(得分:1)
如果我没有错,你想做这样的事情......我进行了快速搜索,发现了以下内容......
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;
}
答案 3 :(得分:1)
在开始时执行MyList.clear()
然后推送元素并最终检查大小。