我正在尝试编写一个函数,可以检查两个字符串是否具有相同频率的所有字符。因此,为了做到这一点,我试图制作两个Maps unordered_map<char, int>
。因此,在下一步中,我只想比较char
地图上每个值的每个值。
string A;
string B;
unordered_map<char, int> a;
unordered_map<char, int> b;
for (char i : A)
{
a[i]++;
}
for (char i : B)
{
b[i]++;
}
for (char i : A &&char j : B)
{
//code goes here
}
那么,是否可能有一个带有两个不同变量的For-Each循环?
简单的答案是不,您不能这样做。每个循环都会调用此for循环,其结构如下所示:
for each ELEMENT in MAP/ARRAY/VECTOR
do something
如果我正确的话,你的意图是要有这样的东西
in loop
store each element of MAP_A into i and each element of MAP_B in j
这不可能
您唯一的解决方案是:注意:这适用于相同大小的阵列。
for (int i = 0; i < NumOfElemens; ++i)
int aa = a[i];
int bb = b[i];
// DO SOMETHING
}
您也可以将其简化为:
for (int i = 0, aa = a[0], bb = b[0]; i < NumOfElemens; ++i, aa = a[i], bb = b[i]) {
// DO SOMETHING
}
这也可能有效,但我不保证将始终如期进行
for (int i = 0; i < NumOfElemens; aa = a[i], bb = b[i], ++i) {
// DO SOMETHING
}
我用i
的增量,aa
以及bb
存储元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句