2016-12-06 60 views
-2

您可以通过执行创建矢量:是否可以在一行中为std :: unordered <int,std :: vector <int>>赋值一个向量<int>?

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}); 

回答

相关问题