我正在使用std :: array(c++11)进行编程。我选择使用std :: array是因为我希望大小在编译时固定(而不是运行时)。有没有办法仅迭代前N个元素。例如:
这并不是最好的例子,因为find_if返回一个标记第一个奇数的迭代器,但您已经了解了这个想法(在这种情况下,我只想考虑我的std :: array的前N个元素,其中N = 4)。
注意:有类似于此问题的问题,但答案总是涉及使用不同的容器(vector或valarray),这不是我想要的。正如我早些时候描述的那样,我希望容器的大小在编译时固定。
提前感谢您!
std::array<int,6> myArray = {0,0,0,0,0,0};
std::find_if(myArray.begin(), myArray.begin() + 4, [](int x){return (x%2==1);});
这并不是最好的例子,因为find_if返回一个标记第一个奇数的迭代器,但您已经了解了这个想法(在这种情况下,我只想考虑我的std :: array的前N个元素,其中N = 4)。
注意:有类似于此问题的问题,但答案总是涉及使用不同的容器(vector或valarray),这不是我想要的。正如我早些时候描述的那样,我希望容器的大小在编译时固定。
提前感谢您!
std::transform
进行处理。否则,只需使用普通的for
循环迭代 N 个元素即可。 - Some programmer dudestd::find_if
放在一个函数里,其中4
是一个参数吗? - TartanLlama