指定索引范围
Specifying a range of indices
在一个函数中,我有一个 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])
我不
明白你描述的约束,但是测试对象是否等于集合元素的方法是使用std::find
:
while (std::find(origv.begin(), origv.end(), perm) == origv.end()) {
// perm not found
}
相关文章:
- 并行用于C++17中数组索引范围内的循环
- C++ - 成功打印超出范围的字符串索引
- 张量不会在超出范围索引时引发异常
- 如何在一定范围内将无锁更新索引设置为最大值
- 为什么 std::string 在索引超出范围时不自动追加(或崩溃)?
- 向量下标出的范围错误.即使向量的索引大于访问数据的索引,也会发生误差
- 打包元组及其索引范围
- 如何在 C++ 的字符串中打印从一个索引到另一个索引的字符范围
- 绑定或色谱柱索引超出范围Sqlite C
- 具有多维数组的索引范围之外的索引是不确定的
- 如何在向量的给定索引范围内查找最小元素
- 如何跳过基于"索引"的基于范围的 for 循环中的元素?
- 阵列索引(转换为整数)用范围枚举
- 为什么在 std::vector 中使用索引超出范围的运算符 [] 时没有出现异常?
- 范围循环中的访问索引
- 使用迭代器的矢量擦除特定索引(不基于范围或条件)
- 在向量的排序向量中查找特定值的索引范围
- 请解释 for 循环索引的范围
- 如何在庞大的二进制数据中快速识别 1(索引)的连续范围
- 字符串下标超出范围.我不知道如何使用字符索引数组,所以我使用了(无符号整数),但它不起作用