C++vectorとmapのネスト使用
2080 ワード
実習会社のプロジェクトでは、各ユーザーとそのすべての操作命令を保存する必要があります.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;
}
}