gpt4 book ai didi

c++ - 在 C++ 中迭代 vector

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:32 25 4
gpt4 key购买 nike

因此,根据我发现的其他示例,我相信这是迭代 m_vect 的正确代码:

for(vector<T>::iterator it = m_vect.begin(); it != m_vect.end(); ++it)

但是,在尝试编译时,我在该行收到以下错误:

heap.h:167:6: error: need ‘typename’ before ‘std::vector<T>::iterator’ because ‘std::vector<T>’ is a dependent scope

就像我说的,我从另一段代码中复制并改编了该行,所以我真的不确定我在做什么是对的还是错的。有什么见解吗?

澄清一下,这是在模板函数中,我已经声明了"template"。 m_vect 是 vector 类型。 Aaaand 我不知道如何正确显示小于和大于...

最佳答案

值得庆幸的是,在 C++11 中,您可以让编译器自行解决。编译器已经知道 m_vect 是什么,所以你可以告诉它:

for (auto it= m_vect.begin(); ( it != m_vect.end()) ; ++ it ) { }

等等,还有更多。在 c++11 中,您甚至可以遍历 m_vect

中的所有内容
for (auto it : m_vect ) { }

你能说我认为 C++03 中的迭代是疯狂的吗,我从未见过有人在现实生活中这样做,而在 C++11 中它要好一千倍?

关于c++ - 在 C++ 中迭代 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486416/

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