在函数内部,我有一个如下所示的 while 循环:
void unpack(std::vector<std::string>& leftcol, std::vector<std::string>& rightcol, std::vector<std::string> origv, std::string perm) {
....
while(perm != origv[0] && perm != origv[1])
....
}
我想做的是perm
与origv
. 但碰巧如果我按顺序执行,while 循环将永远循环。这样做的原因是 perm 被置换,直到它与origv
元素之一匹配。而且只有一个匹配。
有没有办法设置在不循环向量的情况下perm
与每个元素进行比较?origv
因此,如果origv
有三个元素,我希望能够以perm
与上述代码对两个元素相同的方式检查每个元素。
需要明确的是,我想说的是我不能做这样的事情:
for(std::vector<std::string>::size_type i = 0; i < origv.size(); i++)
while(perm != origv[i])