std::vector包含4组std::map数据他们已经根据std::map的int类型数据进行了排序,分别是std::map(""1",1),std::map("2",1),std::map("3",2),std::map("4",2),现在我想要得到的结果是std::vector里面包含两个std::vector第一个map数据和第二个ap数据匹配,第三个map数据和第四个map数据匹配,两两匹配的关系
时间: 2023-07-20 11:30:40 浏览: 166
std::vector排序详解
4星 · 用户满意度95%
可以通过遍历std::vector和std::map来实现这个需求。具体来说,可以先定义两个空的std::vector,然后遍历std::vector,将std::map按照其int类型数据的值进行分组,将分组后的std::map插入到对应的std::vector中。代码示例如下:
```c++
std::vector<std::map<std::string, int>> vec;
// 向vec中插入4个map数据
vec.push_back({{"1", 1}});
vec.push_back({{"2", 1}});
vec.push_back({{"3", 2}});
vec.push_back({{"4", 2}});
// 定义两个空的vector
std::vector<std::map<std::string, int>> vec1;
std::vector<std::map<std::string, int>> vec2;
// 遍历vec,将map按照int类型数据的值进行分组
for(auto iter = vec.begin(); iter != vec.end(); iter++) {
if(iter->at("1") == 1) {
vec1.push_back(*iter);
}
else if(iter->at("1") == 2) {
vec2.push_back(*iter);
}
}
```
上述代码中,根据std::map的int类型数据进行了分组,vec1中包含了第一个map数据和第二个map数据,vec2中包含了第三个map数据和第四个map数据。这样就实现了两两匹配的关系。
阅读全文