gpt4 book ai didi

c++ - 如何为未知容器声明迭代器变量

转载 作者:太空狗 更新时间:2023-10-29 19:53:08 27 4
gpt4 key购买 nike

如何为未知的 STL 容器声明迭代器?例如,我想编写一个函数来接收容器并使用迭代器将其全部打印出来:

template <class Container> void print(Container c) {
// how to declare iterator???????
my_iterator = c.begin();
while(my_iterator!=c.end()) {
cout << *my_iterator << endl;
my_iterator++;
}
}

最佳答案

在 C++03 中,您需要明确地从容器类型中获取迭代器类型:

typename Container::iterator it;
typename Container::const_iterator cit;

在 C++11 中,你可以只使用 auto:

auto my_iterator = c.begin();  // iterator in this case
auto my_iterator = c.cbegin(); // const_iterator always

另请注意,正如我的@Matthieu 建议的那样,您可以在 C++11 中使用基于范围的 for 循环来简化代码:

template <class Container> 
void print(const Container& c)
{
for (const auto& elem : c)
cout << c << endl;
}

关于c++ - 如何为未知容器声明迭代器变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17233837/

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