STL 是否包含处理数组的迭代器
Does the STL include an iterator that works on arrays?
我想在指针和静态分配的数组上使用STL算法,但它们都需要迭代器。有没有迭代器会接受数组和长度并让我使用它?
附言我知道 C++0x 中的array
类,但我不想使用它。
指针
是随机访问迭代器!您可以简单地传递一个指向数组开头的指针,以及一个指向数组末尾的指针。像这样的函数(包含在 C+11 中)可能会派上用场:
template <typename T, std::size_t N>
T* begin(T(&array)[N]) { return array; }
template <typename T, std::size_t N>
T* end(T(&array)[N]) { return begin(array) + N; }
您可以直接使用该数组。例如
int a[5] = .....;
std::for_each( a, ar + 5, someFunctor() );
相关文章:
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- 自定义 STL 兼容迭代器,用于迭代 2D 数组类的列
- 获取 c++ 中具有恒定长度的数组的迭代器
- 为自定义数组实现迭代器
- 原始数组和 std::array 在 clang++ 和 VC++ 上的不同迭代器行为
- C++程序在迭代到数组的最后一个元素时崩溃
- 有没有办法创建一个花哨的迭代器和相应的新数组,以便检查每个索引的索引值的条件?
- C 迭代器范围使用指针到数组
- 当大小未知时,如何迭代指向数组 (int*) 的指针?
- 是否可以在 C 数组中使用迭代器?
- 迭代器和数组
- STL 迭代器和数组的关系
- 使用迭代器数组读取稀疏信息
- 为什么迭代2D数组的行主要比列主要快
- c++ 11迭代锯齿数组
- 一元函数,接受迭代器元组并产生基本类型
- 迭代c++数组
- 迭代器元组.operator++的实现
- 如何在C和C++中迭代字符串数组
- 用step迭代1D数组和2D数组