| |
|
Category: algorithms | | Component type: function |
Prototype
template <class ForwardIterator, class T>
void iota(ForwardIterator first, ForwardIterator last, T value);
Description
Iota
assigns sequentially increasing values to a range. That is, it assigns value
to *first
, value + 1
to *(first + 1)
and so on. In general, each iterator i
in the range [first, last)
is assigned value + (i - first)
. [1]
Definition
Defined in the standard header numeric, and in the nonstandard backward-compatibility header algo.h. This function is an SGI extension; it is not part of the C++ standard.
Requirements on types
-
ForwardIterator
is a model of ForwardIterator.
-
ForwardIterator
is mutable.
-
T
is Assignable.
-
If
x
is an object of type T
, then x++
is defined.
-
T
is convertible to ForwardIterator
's value type.
Preconditions
-
[first, last)
is a valid range.
Complexity
Linear. Exactly last - first
assignments.
Example
int main()
{
vector<int> V(10);
iota(V.begin(), V.end(), 7);
copy(V.begin(), V.end(), ostream_iterator<int>(cout, " "));
cout << endl;
}
Notes
[1] The name iota
is taken from the programming language APL.
See also
fill
, generate
, partial_sum