我正在编写使用列表的简单程序。我已经创建了包含其所有功能的列表,但现在我想将其转换为STL。我已经成功地完成了一些我的功能但是我坚持使用一个应该添加新元素并且还删除用户选择的元素。
这是我的代码:
list <Komputer> lista_komputerow_STL;
list <Komputer>::iterator it;
///This should add an element:
lista_komputerow_STL.push_back(Komputer(nazwa));
///This should remove chosen element:
int element;
for(int i=0;i<(element-1);i++)
{it++;}
lista_komputerow_STL.erase(it);
我是STL的新手,现在对我来说似乎很重要,但我希望在你的帮助下我能得到它。
答案 0 :(得分:6)
您必须初始化迭代器:
list <Komputer>::iterator it = lista_komputerow_STL.begin();
此外,所选的element
未初始化,我认为您的for语句应为:
int element = 0;
for(int i=0; i<element; i++) // Without the '-1'
...
我建议使用std::advance
来移动迭代器而不是for循环:
std::advance(it, element);
但你可以看一下base example并告诉我你是否还有什么东西......