【发布时间】:2018-05-27 19:16:08
【问题描述】:
我正在尝试替换以下映射中的字符:const map<char, vector<char>> ass,注意我有此字符串 pas,并且我想将所有(映射值)向量字符替换为对应的映射键,我尝试迭代用这样的for循环映射:(我从stackoverflow上的另一个问题得到这段代码)
for (auto const &ent1 : ass) {
//ent1.first = first key
//ent1.second = second key
}
所以我尝试像这样迭代地图值向量:
string char1;
string char2;
string wr;
for (auto const &ent1 : ass) {
for (int i = 0; i < ent1.second.size(); i++) {
specialValues += ent1.second[i];
char2 = ent1.second[i];
char1 = ent1.first;
regex e("([" + char1 + "])");
cout << ("([" + char1 + "])");
cout << char2;
wr = regex_replace("c1a0", e, char2);
}
}
所以我希望字符串“c1a0”在循环之后变成“ciao”,但它不会改变任何东西,
我也试过了:
wr = regex_replace("c1a0", e, "o");
输出:c1a0
regex e("([0])");
wr = regex_replace("c1a0", e, char2);
输出:c1a2
我不知道,这对我来说毫无意义。我不明白,你能帮我弄清楚我的代码有什么问题吗?
当然,如果我写的话:
regex e("([0])");
wr = regex_replace("c1a0", e, "o");
它给了我“c1ao”,这就是我想要的。
【问题讨论】:
标签: c++ regex dictionary vector replace