~cpp //벡터, 맵 사용 예제 #include<iostream> #include<string> #include<vector> #include<map> using namespace std; int main() { //맵 객체들의 벡터인 decoder를 선언 vector< map<char, char> > decoder; //각 디코딩 규칙인 rule들을 선언 map<char, char> rule1; rule1['a']='D'; rule1['$']='t'; rule1['9']='p'; rule1['*']='k'; rule1['m']='n'; rule1['i']='l'; rule1['x']='W'; rule1['d']='o'; rule1['=']='s'; rule1['z']='!'; rule1['-']='u'; rule1['@']='e'; rule1['y']='a'; rule1[' ']=' '; //디코딩 규칙을 디코더 벡터에 추가 decoder.push_back(rule1); //해석할 문장을 선언 string input="ad md$ =i@@9z xy*@ -9z"; //반복자 선언 vector< map<char, char> >::iterator it; //디코딩용 루프 for(it=decoder.begin();it!=decoder.end();++it) { /*for(int i=0;i!=input.size();++i) {//이런 식으로도 된다. 하지만 반복자 쓰는 연습을 하기 위해 아래의 식으로. input[i]=(*it)[input[i]]; }*/ for(string::iterator i=input.begin();i!=input.end();i++) { (*i)=(*it)[(*i)]; //cout<<*i; } } cout<<input; return 0; }