有什么办法可以使函数将具有特定类型(让我们说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);
2
是的,它称为模板函数。;)
—
Ulrich Eckhardt
通常认为最好传递一对迭代器(分别代表容器的开始和结束时间)。只要迭代器满足该功能的要求,它(通常会有一些例外情况)与从哪种容器中获取它们无关紧要。
—
彼得