C vector和map的巢狀使用

2021-07-09 04:23:28 字數 614 閱讀 3026

在實習公司的專案裡,需要儲存每個使用者及其所有的操作指令,我想到的是用multimap,或者是map和vector巢狀的資料結構來儲存這些資料。一開始是想用multimap的,因為巢狀的給人感覺比較複雜,使用後發現multimap在遍歷輸出的時候,如果想以使用者來劃分有點麻煩了,除了操縱容器外還需要其他的方式來判斷,遂敢用map和vector的巢狀結構,實際使用時發現容器巢狀使用也不是特別麻煩,當然multimap夠用的情況下,直接用multimap就好

std::map

> stringvecmap;

std::string key;

std::string value;

// 插入

stringvecmap::iterator it = stringvecmap.find(user_name);

if (it == stringvecmap.end()) else

it->second.push_back(value);

// 想做到以key為序的遍歷輸出也非常簡單

for (it = stringvecmap.begin(); it != stringvecmap.end(); ++it)

}

C vector 和 map的刪除

序列容器的erase方法返回值是指向緊接在被刪除元素之後的元素的有效迭代器,可以根據這個返回值來安全刪除元素。vectorc for vector iterator it c.begin it c.end 關聯容器的 erase 方法沒有返回值,被刪除的迭代器失效,所以刪除前必須確保能得到下乙個迭代...

c vector容器的巢狀使用

目錄 1 定義 2 新增元素 3 訪問元素 4 長度 vectorint m 這裡是vector的巢狀使用,本質是vector元素裡的每個元素也是vector型別,所以抓住本質來新增元素就比較容易理解。我們假設外層的vector的物件為m,為外層vector物件,則m中的每乙個元素也是vector型...

map和struct的多重巢狀

強烈推薦人工智慧學習 之前聊到了map和struct的單重巢狀,總感覺不夠刺激,今天來玩一下多重巢狀。struct node1 struct node map中有node,node中有mymap1,mymap1中有node1,則要想mymap中插入元素,必須由里到外賦值或插入 int main no...