您可以通过执行以下操作来创建矢量:
std::vector<int> v = ({1,2,3});
假设你有:
std::unordered_map<int,std::vector<int>> m;
有没有办法做类似的事情:
m[1] = ({1,2,3});
即。有没有办法在括号中分配值,而不必先完成创建向量然后分配的两行步骤?
std::vector<int> v = ({1,2,3});
m[1] = v;
无论如何将上述两条线压缩成一条线?或者是唯一的选择,创建一个函数,它接受向量中的值并返回一个向量:
template <class T>
std::vector<T> func2( std::initializer_list<T> list )
{
std::vector<T> v;
for( auto elem : list )
{
v.push_back(elem) ;
}
return v;
}
然后执行:
m[1] = func2({1,2,3});
答案 0 :(得分:4)
m[1] = {1, 2, 3};
删除括号。