【发布时间】:2020-06-03 10:52:46
【问题描述】:
有什么方法可以让我创建一个函数,它将具有特定类型的容器(比如说std::string)作为参数
void foo(const std::container<std::string> &cont)
{
for(std::string val: cont) {
std::cout << val << std::endl;
}
}
并为每种类型的 stl 容器调用它作为输入?和上面一样?
std::set<std::string> strset;
std::vector<std::string> strvec;
std::list<std::string> strlist;
foo(strset);
foo(strvec);
foo(strlist);
【问题讨论】:
-
是的,它被称为模板函数。 ;)
-
通常认为传递一对迭代器更好(分别代表容器的开始和结束)。只要迭代器满足函数的要求,(通常有一些例外)它们是从什么类型的容器中获取的并不重要。
标签: c++ templates stl containers