会用map就行。
#include<bits/stdc++.h>
using namespace std;
unordered_map<string, bool> mp;
vector<string> v;
int main() {
int m, skip, win, flag = 0;
scanf ("%d %d %d", &m, &skip, &win);
v.resize(m + 1);
for (int i = 1; i <= m; i++) cin >> v[i];
if (win > m) {
printf ("Keep going...");
return 0;
}
for (int i = win; i <= m; ) {
if (mp[v[i]] == false) {
mp[v[i]] = true;
cout << v[i] << endl;;
i += skip;
}
else {
i++;
}
}
}
该程序主要展示了一个使用C++的unordered_map容器来解决特定字符串遍历的场景。程序读取输入的整数m、skip和win,然后处理字符串数组。当win超过m时,输出提示信息;否则,检查字符串是否已记录,若未记录则输出并跳过skip个元素,已记录则直接跳过一个元素。这个代码片段体现了C++中数据结构在遍历和查找操作上的效率优势。
25

被折叠的 条评论
为什么被折叠?



