【发布时间】:2021-12-19 02:54:05
【问题描述】:
我有以下代码完全符合我的要求。问题是我需要样本数组来比较字符串并保持计数。有没有办法在没有样本的情况下计算任何数组上每个字符串的出现次数?
对于更多上下文,最初的问题是从包含车辆信息的.txt 文件中读取数据,例如:
Volkswagen Jetta
Ford Focus
Volkswagen Jetta
并统计每个品牌的车辆数量。请记住,这是来自编程入门课程,我们不知道如何使用矢量或地图。
#include <iostream>
#include <string>
using namespace std;
using std::string;
#define MAX 20
int main(){
int counter[MAX];
string arr[MAX]={"ABC","AOE","ADC","ABC","ADC","ADC"};
string sample[MAX]={"ABC", "AOE", "ADC"};
for(int i=0; i<=MAX; i++){
counter[i]=0;
}
for(int i=0; i<MAX;i++){
for(int j=0; j<MAX; j++){
if (sample[i]==arr[j]){
counter[i]++;
}
}
}
for(int i=0; i<3;i++){
cout<< sample[i] << "=" << counter[i]<<endl;
}
return 0;
}
【问题讨论】:
-
尝试使用
unordered_map。 -
您是否允许使用
std::map? -
在 C++ 编程入门课程中,
vector是您应该在string之后立即学习的内容。 C 样式数组和预处理器#define应该在高级 C++ 课程中。 -
很遗憾我们不允许使用地图,我也不知道怎么用,抱歉。
-
我讨厌不允许学生使用最适合工作的工具来解决问题。