我第一次尝试使用动态内存分配。我想为 2 dim 动态数组分配内存,以存储来自 A* 函数的路径。我认为这项工作的数组是 boost::multi_array。
问题我似乎能够分配内存,但我无法更改或访问任何元素。
#include <iostream>
#include "boost/multi_array.hpp"
typedef boost::multi_array<int, 2> array_type;
int main()
{
array_type *A = new array_type;
A->resize( boost::extents[2][2] );
A[1][1] = 2;
std::cout << A[1][1] << std::endl;
delete A;
return 0;
}
编译器说:
C:\Coding\Code Projects\C++\Source Files\Console\main-read.cpp|14|error: no match for 'operator<<' in 'std::cout << boost::multi_array_ref<T, NumDims>::operator[](boost::multi_array_ref<T, NumDims>::index) [with T = int; unsigned int NumDims = 2u; boost::multi_array_ref<T, NumDims>::reference = boost::detail::multi_array::sub_array<int, 1u>; boost::multi_array_ref<T, NumDims>::index = int](1)'|.
我已经尝试过声明 A 的方法,但似乎找不到解决方案。任何帮助,将不胜感激。