您将如何迭代 a 中的项目boost::shared_array
?你会get()
在上面做 a 并使用原始指针作为迭代器吗?
问问题
4141 次
2 回答
3
由于您已经在使用 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 << ',';
}
}
在任何情况下,您都需要自己记录数组的大小。
于 2013-03-13T09:01:38.947 回答
2
看到您已经知道数组的大小,因为它必须在创建之前分配boost::shared_array
,我看到迭代它的唯一方法是使用普通for
循环,然后使用operator[i]
onboost::shared_array
来获取元素。
于 2013-03-13T08:54:06.047 回答