簡體   English   中英

插入std :: map的簡短函數 <int, std::vector<int> &gt;

[英]Short function to insert into a std::map<int, std::vector<int>>

我發現自己經常處於編寫以下代碼的情況:

std::map<int, std::vector<int>> dict;

void insert(int key, int val) {
  if (dict.find(key) == dict.end()) {
    dict[key] = std::vector<int>();
  }
  dict[key].push_back(val)
}

編寫這個插入函數是否有一種不那么冗長的方式(在C ++ 11中)?

我不認為你的函數特別冗長,但在這種情況下它可以簡單地用dict[key].push_back(val)代替,因為map上的operator[]默認構造值,如果它不存在的話。 你不需要if塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM