2016-12-06 70 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}); 

回答

相關問題