2

我正在编写使用列表的简单程序。我已经创建了包含所有功能的列表,但现在我想将其转换为 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 完全陌生,现在对我来说似乎太多了,但我希望在你的帮助下我会得到它。

4

1 回答 1

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);

但是你可以看看一个基本的例子,如果有什么你不明白的,请告诉我......

于 2013-06-14T00:17:52.370 回答