1. 程式人生 > >C++ vector和map的巢狀使用

C++ vector和map的巢狀使用

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

std::map<std::string, std::vector<std::string> > StringVecMap;
std
::string key; std::string value; // 插入 StringVecMap::iterator it = StringVecMap.find(user_name); if (it == StringVecMap.end()) { std::vector<std::string> vec; vec.push_back(); StringVecMap.insert(make_pair(key, vec)); }else it->second.push_back(value); // 想做到以key為序的遍歷輸出也非常簡單 for (it = StringVecMap.begin(); it != StringVecMap.end(); ++it) { vector
<string>
::iterator it_inner; for (it_inner = it->second.begin(); it_inner != it->second.end(); ++it_inner) { std::cout << *it << std::endl; } }