作者:book_02
链接:https://www.jianshu.com/p/ffdb4c681392
来源: 简书
著作权归作者所有. 商业转载请联系作者获得授权, 非商业转载请注明出处.
iota
用一个从 value
递增的数列给 [first, last)
的容器赋值, 等效于:
*(d_first) = value;
*(d_first+1) = ++value;
*(d_first+2) = ++value;
*(d_first+3) = ++value;
...
C++11 才引入, 之前版本没有此函数
头文件
#include <numeric>
名称来源: iota
是希腊语的第九个字母, 读 [aɪ'otə]
, 这个名称是从 APL 编程语言借鉴过来的.
内部实现
源码里面确实也是用 for 循环赋值的:
template<typename _ForwardIterator, typename _Tp>
_GLIBCXX20_CONSTEXPR
void
iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value)
{
// concept requirements
__glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
_ForwardIterator>)
__glibcxx_function_requires(_ConvertibleConcept<_Tp,
typename iterator_traits<_ForwardIterator>::value_type>)
__glibcxx_requires_valid_range(__first, __last);
for (; __first != __last; ++__first)
{
*__first = __value;
++__value;
}
}
本文链接地址:itoa用法学习,英雄不问来路,转载请注明出处,谢谢。
有话想说:那就赶紧去给我留言吧。
文章评论