我想出了以下内容:传递一个std容器的功能
template <typename T> inline void printcontainer(std::vector<T> container)
{
for(auto it = container.begin(); it != container.end(); it++)
{
std::cout << *it << std::endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<int> v;
v.push_back(5);
v.push_back(4);
v.push_back(3);
printcontainer(v);
return 0;
}
(对不起,我push_backs
,视觉工作室不接受初始化列表...啊!!)
现在这个函数被限制为std::vector
,我怎样才能让它可以通过其他的容器,比如std::list
数组等等......
++您正在使用什么版本的VC不支持初始化列表? – MikeMB
visual studio 2012,像'std :: vector v {1,2,3};'这样的东西不被支持,所以你必须使用我非常鄙视的c样式数组解决方法。它也没有'std :: initializer_list'很奇怪的呃。 –
对,我已经习惯了C++ 11,我忘了VS采用了很多/最? C++ 11功能不在VS 2013之前。 – MikeMB