【发布时间】:2012-02-06 18:54:35
【问题描述】:
假设我有一个名为 Object 的类。 Object 类有一个成员函数,它想从容器中读取字符串。假设函数如下所示:
template <class InputIterator>
void Object::add(InputIterator first, InputIterator last) { ... }
虽然这允许调用者从任意容器传递字符串,但它并不表示迭代器必须是一对字符串迭代器。
在这种情况下使用模板是否仍然合适,还是应该强制调用者使用预先确定的字符串容器?
【问题讨论】:
-
不清楚你想做什么。如果你只想传递字符串,你不需要使用模板。但是你的“目标”是什么?
-
@RamyAlZuhouri:看起来他的目标是编写一个函数,将 any 字符串容器中的迭代器作为参数。 IE。 std::list<:string>::iterator, std::vector<:string>::iterator,但不是 std::vector
::iterator. -
@RamyAlZuhouri SigTerm 是正确的。
标签: c++ templates coding-style iterator generic-programming