在std::vector中查找索引
Finding index in std::vector
我是C++的新手。如果向量中有一个子集,我试图找到元素的索引。
我的代码在下面。。请帮我解决这个问题。
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<uint8_t> v = { 1,2,3,4,0,6,7,8,4,5,6 };
int key = 4;
std::vector<uint8_t>::iterator itr = std::find(v.begin(), v.end(), key);
if (itr != v.cend()) {
uint8_t index = std::distance(v.begin(), itr);
if ((++index == 5) && (++index == 6))
std::cout << "Element present at index " << index-2;
else
continue;
}
else {
std::cout << "Element not found";
}
return 0;
}
在上面的代码中,如果4,5,6是连续的元素,我想打印元素'4'的索引。
输出:8
您必须将第一个if
替换为具有相同测试的while
,将两个++index
替换为*(++itr)
,在打印前不减去2进行索引,并将最后一个else
替换为if(itr == v.cend())
以获得所需输出。
请注意,例如,如果您将期望的查找元素从{4,5,6}更改为{4,4,6},则此代码将不再有效,因此,如果您想对问题进行泛化,我建议您更改问题的一般方法
相关文章:
- 查找最接近的大于当前数字的数字的索引
- 查找字符在两个索引之间出现的次数
- 如何查找哪个类对象位于数组的特定索引上(多态性)
- 在对向量中查找元素的索引
- 查找索引的最接近的真实值
- C++ char 类查找字符索引
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- 查找数组中重复(重复)数字的索引
- 查找下一个具有真值C++的数组索引
- 在不进行排序的情况下查找数组中n个最小值的索引
- 在索引0为0的数组中查找非零最小值C++
- 查找索引数据结构,例如`sTD :: vector`(非数组)
- 查找索引值在char表中
- C++ std::lower_bound() 函数来查找索引排序向量的插入点
- 在数组中查找索引 给出它之前和之后的总和
- 使用向量时查找索引<>::迭代器
- 如何在Poco::DeflatingOutputStream中查找索引
- 如何在首次出现最大值的排序数组中查找索引
- 在字符串 C++ 中查找索引
- 使用AddFontResource()临时添加到系统字体表中的字体的C++查找索引,以便在控制台中使用