C++ 迭代boost::shared_数组

C++ 迭代boost::shared_数组,c++,boost,c++98,C++,Boost,C++98,如何迭代boost::shared_数组中的项?你会对它执行一个get(),并使用一个原始指针作为迭代器吗?鉴于在创建boost::shared_数组之前必须分配数组这一事实,你已经知道数组的大小,我看到的唯一迭代它的方法是对循环使用一个普通的,然后使用操作符[I]在boost::shared_array上获取元素。既然您已经在使用boost,可能如下所示: #include <boost/shared_array.hpp> #include <boost/range.hpp&

如何迭代
boost::shared_数组中的项?你会对它执行一个
get()
,并使用一个原始指针作为迭代器吗?

鉴于在创建
boost::shared_数组之前必须分配数组这一事实,你已经知道数组的大小,我看到的唯一迭代它的方法是对
循环使用一个普通的
,然后使用
操作符[I]
boost::shared_array
上获取元素。

既然您已经在使用boost,可能如下所示:

#include <boost/shared_array.hpp>
#include <boost/range.hpp>
#include <iostream>

int main()
{
    boost::shared_array<int> arr(new int[10]());

    int* ptr = arr.get();
    for (int i : boost::make_iterator_range(ptr, ptr+10))
    {
        std::cout << i << ',';
    }
}
#包括
#包括
#包括
int main()
{
boost::shared_数组arr(newint[10]());
int*ptr=arr.get();
for(inti:boost::make_iterator_range(ptr,ptr+10))
{
标准::cout