【发布时间】:2016-05-22 19:24:17
【问题描述】:
如果我有以下程序:
#include <vector>
#include <set>
template<class T, class U>
void AddToContainer(T& container, U value)
{
container.push_back(value);
}
int main(char**, int)
{
std::vector<int> v;
AddToContainer(v, 1);
std::set<int> s;
AddToContainer(s, 1);
return 0;
}
我怎样才能使添加到容器通用?由于std::set 没有push_back 而只有insert,因此编译将失败。
【问题讨论】:
-
这是听起来是个好主意,但实际上从来都不是。
-
STL 已经拥有尽可能多的静态多态性 - 毕竟,这是设计目标之一。您的建议只是鼓励您的
AddToContainer的客户效率低下。
标签: c++ c++11 containers