gpt4 book ai didi

c++ - 打印 map 中包含的集合的内容

转载 作者:行者123 更新时间:2023-11-30 02:03:50 25 4
gpt4 key购买 nike

我正在编写一个程序,从文件中读取团队名称并将它们分组。每组大小为 4。我正在使用:

map<int, set<string> > groups

假设团队名称是国家名称。现在在将所有团队名称输入 resp 之后。 groups 我想打印每个组的内容,这就是我遇到困难的地方。

这是我到目前为止编写的完整工作代码。

#include<iostream>
#include<vector>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#include<map>
#include<set>
using namespace std;
void form_groups(vector<string>);
int main(){
srand(unsigned(time(NULL)));
string team_name;
vector<string> teams;
while (cin >> team_name)
{
teams.push_back(team_name);
}
random_shuffle(teams.begin(), teams.end());
form_groups(teams);
}
void form_groups(vector<string> teams)
{
map<int, set<string> > groups;
map<int, set<string> >::iterator it;
string curr_item;
int curr_group = 1;
int count = 0;
for(int i = 0; i < teams.size(); i++)
{
curr_item = teams.at(i);
count++;
if(count == 4)
{
curr_group += 1;
count = 0;
}
groups[curr_group].insert(curr_item);
}
cout << curr_group << endl;
for(it = groups.begin(); it != groups.end(); ++it)
{
}
}

最佳答案

你的方法很好。通过使用 map<int, set<string> >::iterator it您可以访问给定的 <key,value>配对 it->firstit->second .自 set<string>本身就是标准容器,您可以使用 set<string>::iterator遍历元素:

map<int, set<string> >::iterator map_it;
set<string>::iterator set_it

for(map_it = groups.begin(); map_it != groups.end(); ++map_it){
cout << "Group " << it->first << ": ";

for(set_it = map_it->second.begin(); set_it != map_it->second.end(); ++set_it)
cout << *set_it << " ";

cout << endl;
}

关于c++ - 打印 map 中包含的集合的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com