C++ 查找某事物在结构向量的两个元素中出现的次数
C++ Finding the number of times something appears in two elements a vector of structs
抱歉,标题令人困惑,不知道如何措辞。
基本上,我有一个充满结构的向量,其中包含一些关于参加某项运动决赛的球队的信息。结构如下所示:
struct Year{
string year;
string host;
string winner;
string score;
string runnerUp;
};
我用文件中的信息填充了向量,想找出每支球队参加决赛的次数。这意味着我需要计算每支球队获得冠军或亚军的次数。执行此操作的相当简单的方法是什么?
作为参考,该文件如下所示:
Year Host Winner Score Runner-up
1936 Germany United States 19-8 Canada
1948 United Kingdom United States 65-21 France
1952 Finland United States 36-25 Soviet Union
1956 Australia United States 89-55 Soviet Union
1960 Italy United States No playoffs Soviet Union
1964 Japan United States 73-59 Soviet Union
1968 Mexico United States 65-50 Yugoslavia
1972 West Germany Soviet Union 51-50 United States
1976 Canada United States 95-74 Yugoslavia
1980 Soviet Union Yugoslavia 86-77 Italy
1984 United States United States 96-65 Spain
1988 South Korea Soviet Union 76-63 Yugoslavia
1992 Spain United States 117-85 Croatia
1996 United States United States 95-69 Yugoslavia
2000 Australia United States 85-75 France
2004 Greece Argentina 84-69 Italy
2008 China United States 118-107 Spain
2012 United Kingdom United States 107-100 Spain
假设向量已正确填充
您可以遍历向量并为每次出现的团队增加一个计数器。您可以将计数器编码为 map<std::string, int>
,其中键是团队名称。
Edit:map
的丑表亲是键值对向量。我向您展示了一种定义数据类型的可能方法。您可以将 struct
更改为 std::pair
,但由于我猜这是家庭作业,您可能希望坚持使用简单的数据类型。
struct Counter{
string team;
int counter;
}
std::vector<Counter> counters;
留给你思考如何为这些结构设计算法。提示:std::find
.
抱歉,标题令人困惑,不知道如何措辞。
基本上,我有一个充满结构的向量,其中包含一些关于参加某项运动决赛的球队的信息。结构如下所示:
struct Year{
string year;
string host;
string winner;
string score;
string runnerUp;
};
我用文件中的信息填充了向量,想找出每支球队参加决赛的次数。这意味着我需要计算每支球队获得冠军或亚军的次数。执行此操作的相当简单的方法是什么?
作为参考,该文件如下所示:
Year Host Winner Score Runner-up
1936 Germany United States 19-8 Canada
1948 United Kingdom United States 65-21 France
1952 Finland United States 36-25 Soviet Union
1956 Australia United States 89-55 Soviet Union
1960 Italy United States No playoffs Soviet Union
1964 Japan United States 73-59 Soviet Union
1968 Mexico United States 65-50 Yugoslavia
1972 West Germany Soviet Union 51-50 United States
1976 Canada United States 95-74 Yugoslavia
1980 Soviet Union Yugoslavia 86-77 Italy
1984 United States United States 96-65 Spain
1988 South Korea Soviet Union 76-63 Yugoslavia
1992 Spain United States 117-85 Croatia
1996 United States United States 95-69 Yugoslavia
2000 Australia United States 85-75 France
2004 Greece Argentina 84-69 Italy
2008 China United States 118-107 Spain
2012 United Kingdom United States 107-100 Spain
假设向量已正确填充
您可以遍历向量并为每次出现的团队增加一个计数器。您可以将计数器编码为 map<std::string, int>
,其中键是团队名称。
Edit:map
的丑表亲是键值对向量。我向您展示了一种定义数据类型的可能方法。您可以将 struct
更改为 std::pair
,但由于我猜这是家庭作业,您可能希望坚持使用简单的数据类型。
struct Counter{
string team;
int counter;
}
std::vector<Counter> counters;
留给你思考如何为这些结构设计算法。提示:std::find
.