::iterator i;"-6ren"> ::iterator i;"-我一直在研究如何在 C++ 中使用列表。尽管第 12 行不起作用,但我对标题中提到的那行更感兴趣,因为我不明白它的作用? 因此,for 中出现错误循环,但我认为这是由于我对 list::iterato-6ren">
gpt4 book ai didi

c++ - 无法理解 "list::iterator i;"

转载 作者:行者123 更新时间:2023-12-01 14:41:28 24 4
gpt4 key购买 nike

我一直在研究如何在 C++ 中使用列表。尽管第 12 行不起作用,但我对标题中提到的那行更感兴趣,因为我不明白它的作用?

因此,for 中出现错误循环,但我认为这是由于我对 list<int>::iterator i; 缺乏了解所致,如果有人能分解并解释这条线对我意味着什么,那就太棒了!

#include <iostream>
#include <list>

using namespace std;

int main(){

list<int> integer_list;

integer_list.push_back(0); //Adds a new element to the end of the list.
integer_list.push_front(0); //Adds a new elements to the front of the list.
integer_list (++integer_list.begin(),2); // Insert '2' before the position of first argument.

integer_list.push_back(5);
integer_list.push_back(6);

list <int>::iterator i;

for (i = integer_list; i != integer_list.end(); ++i)
{
cout << *i << " ";
}


return 0;

}

此代码直接取自 here .只有列表的名称已更改。

最佳答案

list<int>::iterator type 是模板类的迭代器类型 list<int> .迭代器允许您一次查看列表中的每个元素。修复您的代码并尝试解释,这是正确的语法:

for (i = integer_list.begin(); i != integer_list.end(); ++i)
{
// 'i' will equal each element in the list in turn
}

方法 list<int>.begin()list<int>.end()每个返回 list<int>::iterator 的实例分别指向列表的开头和结尾。 for 循环中的第一项初始化您的 list<int>::iterator使用复制构造函数指向列表的开头。第二项检查您的迭代器是否指向与指向末尾的迭代器相同的位置(换句话说,您是否到达列表的末尾),第三项是运算符重载的示例。类(class)list<int>::iterator已重载 ++运算符的行为类似于指针:指向列表中的下一项。

您还可以使用一些语法糖并使用:

for (auto& i : integer_list)
{

}

同样的结果。希望这会为您清除迭代器。

关于c++ - 无法理解 "list<int>::iterator i;",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31585830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com