【发布时间】:2019-12-25 18:59:10
【问题描述】:
我想写一个函数my_func 可以这样调用,但不关心v 是std::vector,它可以是任何STL 容器。有点像std::for_each:
std::vector<std::string> v = {...};
my_func(v.begin(), v.end());
但我无法弄清楚函数签名。
void my_func(??? i1, ??? i2)
{
std::for_each(i1, i2, ...); // dumb example implementation
}
我不擅长模板编程,所以即使查看 std::for_each 的函数声明也无济于事。
是否有一个简单的实现,或者这从根本上会使模板变量变得混乱?
【问题讨论】:
-
您必须使用模板。每个迭代器都是不同的类型。 C++ 库中的所有迭代器都没有通用的超类。
标签: c++ function templates stl c++14