#include <iostream>
#include <map>
#include <vector>
#include <string>
using namespace std;
int main() {
//用于记录字符出现的顺序
vector<char> order;
//用于记录对应字符出现的下标
map<char,vector<int> > m;
string input;
cin>>input;
for(int i = 0; i < input.length(); i++) {
if(m.find(input[i]) == m.end()) {
//首次出现
order.push_back(input[i]);
}
//map的插入
m[input[i]].push_back(i);
}
for(int i = 0 ; i < order.size(); i++) {
if(m[order[i]].size() > 1) {
for(int j = 0; j < m[order[i]].size(); j++) {
cout<<order[i]<<":"<<m[order[i]][j];
if(j < m[order[i]].size() - 1) cout<<",";
}
cout<<endl;
}
}
return 0;
}
1、map的使用 find、插入、迭代器遍历

京公网安备 11010502036488号