gpt4 book ai didi

c++ - 声明一个接受泛型迭代器的函数

转载 作者:IT老高 更新时间:2023-10-28 21:55:20 26 4
gpt4 key购买 nike

鉴于此代码,是否可以更改 dumpStrings()能够遍历 string 的任何容器,比如说 list<string> ?

#include <vector>
#include <string>
#include <ostream>
#include <iostream>

using namespace std;

void dumpStrings(vector<string>::iterator it, vector<string>::iterator end)
{
while (it != end) {
cout << *it++ << endl;
}
}

int main()
{
vector<string> strVector;
strVector.push_back("Hello");
strVector.push_back("World");

dumpStrings(strVector.begin(), strVector.end());
return 0;
}

最佳答案

创建模板

template<class iterator_type>
void dumpStrings(iterator_type it, iterator_type end)
{
while (it != end) {
cout << *(it++) << endl;
}
}

模板还取消了容器值类型对字符串的限制。请注意,您需要在 it++ 周围加上括号。

关于c++ - 声明一个接受泛型迭代器的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054087/

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