如何在C ++中操作向量

时间:2017-12-18 17:12:35

标签: c++ vector

我正试图在c ++中操纵向量中的一组元素。

vector <int> vectorOfValue;

vectorOfValue.push_back(1);
vectorOfValue.push_back(2);
vectorOfValue.push_back(3);
vectorOfValue.push_back(4);
vectorOfValue.push_back(5);
vectorOfValue.push_back(6);
vectorOfValue.push_back(7);
vectorOfValue.push_back(8);
vectorOfValue.push_back(9);
vectorOfValue.push_back(10);

我想知道程序如何打印出大于3且小于9的值的向量。

例如,这是一组排除异常值的数据。

2 个答案:

答案 0 :(得分:3)

如果要使用标准库算法和迭代器,可以使用std :: copy_if:

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

auto main(int argc, char* argv[]) -> int
{
  std::vector<int> vectorOfValue;
  // code for initialization of vector ..

  std::copy_if(vectorOfValue.begin(), 
               vectorOfValue.end(), 
               std::ostream_iterator<int>(std::cout, "\n"), 
               [](const int value) { return value > 3 && value < 9; });
}

答案 1 :(得分:-1)

使用auto语法而不是使用iterator来简化我的方法:

for(auto &i : vectorOfValue) {
   if (i > 3 && i < 9) {
      std::cout << i << std::endl;
   }
}