C++ Numeric::iota() 函数



C++ 的std::numeric::iota() 函数用于填充一系列元素,使其具有顺序递增的值。它接受三个参数:起始迭代器、结束迭代器和起始值。它从提供的起始值开始,并为范围中的每个后续元素递增该值。

语法

以下是 std::numeric::iota() 函数的语法。

void iota (ForwardIterator first, ForwardIterator last, T val);

参数

  • first, last − 指示序列中初始和最终位置的迭代器。
  • val − 累加器的初始值。

返回值

异常

如果任何赋值或增量操作抛出异常,则会抛出异常。

数据竞争

访问范围 [first1,last1) 中的元素。

示例 1

在以下示例中,我们将考虑 iota() 函数的基本用法。

#include <iostream>
#include <numeric>
#include <array>
int main() {
   std::array < int, 4 > a;
   std::iota(a.begin(), a.end(), 1);
   for (int x: a) {
      std::cout << x << " ";
   }
   return 0;
}

输出

以上代码的输出如下:

1 2 3 4 

示例 2

考虑以下示例,我们将用偶数填充数组。

#include <iostream>
#include <numeric>
#include <vector>
int main() {
   std::vector < int > a(4);
   std::iota(a.begin(), a.end(), 0);
   for (int & x: a) {
      x *= 2;
   }
   for (int x: a) {
      std::cout << x << " ";
   }
   return 0;
}

输出

如果我们运行以上代码,它将生成以下输出:

0 2 4 6

示例 3

让我们看看以下示例,我们将用负值填充它。

#include <iostream>
#include <numeric>
#include <list>
int main() {
   std::list < int > a(4);
   std::iota(a.begin(), a.end(), -4);
   for (int x: a) {
      std::cout << x << " ";
   }
   return 0;
}

输出

以下是以上代码的输出:

-4 -3 -2 -1
numeric.htm
广告