还是stl的问题,又蒙了。。。。求指点

发布于 2021-11-15 12:46:12 字数 622 浏览 833 评论 14

list<int> ilist(10);
	int j = 1;
	for (list<int>::size_type i = 0; i < ilist.size(); i++)
	{
        ilist[i] = j++;
	}

报错!!error C2676: binary '[' : 'std::list<_Ty>' does not define this operator or a conversion to a type acceptable to the predefined operator
1>        with
1>        [
1>            _Ty=int
1>        ]

求指教。。。。。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

岁月打碎记忆 2021-11-18 10:45:24

但是C++primer上有的啊。。。。我在vs2005上。

青萝楚歌 2021-11-18 10:45:24

stl list 在哪里看到能通过下标访问

牵你的手,一向走下去 2021-11-18 10:45:24

list的特性就决定了不能用下标来访问,当然重载一个[]来简化使用是另外一回事.但从语义上来讲是有歧义的.

醉酒的小男人 2021-11-18 10:45:24

受教了,对于一个菜鸟,要有一颗激情的心,无论有多少问题,都要勇往直前!!

樱花落人离去 2021-11-18 10:33:12

在源码里面没看到list有重载[],而且你的VS也是报的找不到[]操作符的错误。C++ primer里面是如何具体定义的,第几版的哪一章内容?

平定天下 2021-11-18 10:25:41

no match for 'operator[]' in 'ilist[i]'

可是我不能没有你 2021-11-18 10:23:55

但是我同样的程序,只是换成vector却可以,list我看了是有[]操作符的啊,为什么在这里有问题了

夜无邪 2021-11-18 09:15:52

vector在内存中是连续存放的,所以list没有定义[]操作符

策马西风 2021-11-18 08:53:02

如果两个都是一样的还要区分vector和list干嘛 vector相当于数据组,但不是数组 list相当于链表,

墨洒年华 2021-11-18 06:04:39

list在内存空间不是连续存放的吧,一般是用迭代器iterator

秉烛思 2021-11-18 03:06:30

检查list是否重载了[] 操作符

回忆凄美了谁 2021-11-17 23:36:32

提供了。

猫性小仙女 2021-11-17 15:29:03

记住[]要以随机迭代器的支持,list的迭代器是随机迭代器么?

后知后觉 2021-11-16 16:52:37

list提供[]么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文