#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、插入、迭代器遍历