C ++-遍历从find_if返回的std :: vector <>

布雷特

我正在学习C ++,所以我觉得这应该是一个非常简单的答案-但我似乎找不到。因此,如果天真的话,我会提前道歉。

我有一个std::vector<int>of值,我正在尝试查找数值的索引

我从这里遵循代码

(以下重复):

// find_if example
#include <iostream>     // std::cout
#include <algorithm>    // std::find_if
#include <vector>       // std::vector

bool IsOdd (int i) {
  return ((i%2)==1);
}

int main () {
  std::vector<int> myvector;

  myvector.push_back(10);
  myvector.push_back(25);
  myvector.push_back(40);
  myvector.push_back(55);

  std::vector<int>::iterator it = std::find_if (myvector.begin(), myvector.end(), IsOdd);
  std::cout << "The first odd value is " << *it << '\n';

  return 0;
}

本示例打印第一个奇数值。我如何扩展它以为我提供in中每个奇数值的索引值myvector这是正确的方法吗?

wesley.mesquita
// find_if example
#include <iostream>     // std::cout
#include <algorithm>    // std::find_if
#include <vector>       // std::vector

bool IsOdd (int i) {
  return ((i%2)==1);
}

int main () {
  std::vector<int> myvector;

  myvector.push_back(10);
  myvector.push_back(25);
  myvector.push_back(40);
  myvector.push_back(55);


  std::vector<int>::iterator it = std::find_if (myvector.begin(), myvector.end(), IsOdd); 
  std::cout << "ODD values are: " << std::endl;     

  while(it != myvector.end() ){

    std::cout << *it  << " in position " << (it - myvector.begin())  << '\n';
    it = std::find_if (++it, myvector.end(), IsOdd); 
  }
  return 0;
}

编辑:更改it+1++it查看@DavidRodríguez-下面的dribeas评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C遍历vector返回的对象甚至不在其中

来自分类Dev

使用std :: async c ++ 11返回std:vector

来自分类Dev

C ++ std :: vector <>与new []性能

来自分类Dev

C ++ std :: vector <>与new []性能

来自分类Dev

访问多维C ++ std :: vector

来自分类Dev

具有重复数据的自定义对象的std :: vector上的std :: find_if

来自分类Dev

如何使用C ++ 11 Move语义从函数返回std :: vector?

来自分类Dev

在一个结构内的c ++:std :: vector的std :: vector

来自分类Dev

在C ++中返回等于C#的Vector

来自分类Dev

在C ++中遍历vector <string>的结构

来自分类Dev

在C ++中循环遍历vector <string>的结构

来自分类Dev

C ++:错误无法从std :: vector <int> *转换为std :: vector <std :: vector <int>>

来自分类Dev

C ++-排序的std :: vector中元素的索引

来自分类Dev

如何实现std :: vector插入?C ++

来自分类Dev

C ++:std :: vector :: resize与“常规”分配

来自分类Dev

std :: vector使结构排序变慢?C ++

来自分类Dev

内存泄漏std :: vector管理C ++

来自分类Dev

通过MPI发送C ++ std :: vector <bool>

来自分类Dev

std :: vector.push_back()C ++

来自分类Dev

C ++ std :: vector:在向量位置求和

来自分类Dev

std :: vector使结构排序变慢?C ++

来自分类Dev

C ++ std :: vector连续节的大小

来自分类Dev

从std :: vector <int>转换为char [] C ++

来自分类Dev

C ++函数的可选std :: vector参数

来自分类Dev

Java 等价于 C++ std::vector?

来自分类Dev

std::vector 的 C++ struct 内存布局

来自分类Dev

C++ 从 std::vector 膨胀 zlib

来自分类Dev

C++:从 vector::insert 返回迭代器

来自分类Dev

遍历vector返回相同的对象