我有以下代码,我想重写以使用智能指针:我正在努力寻找任何关于如何声明、分配内存和访问双指针的体面示例。谁能提供一个例子?我读过 shared_ptr 不是要走的路,因为它使用 delete 而不是 delete[],是否需要使用 shared_array?
#include <iostream>
#include <boost/shared_array.hpp>
#include <iomanip>
int main(int argc, char**argv) {
std::pair<int,float> **corrArray;
int rows=10;
int cols=5;
corrArray = new std::pair<int,float>*[rows];
for(int i=0; i<rows; i++) {
corrArray[i] = new std::pair<int,float>[cols];
}
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
corrArray[i][j].first = i+j;
std::cout << std::setw(3) << corrArray[i][j].first << " ";
}
std::cout << "\n";
}
for(int i=0; i<rows; i++) {
delete[] corrArray[i];
}
delete[] corrArray;
return 0;
}
编辑: corrArray 必须首先声明(它将是一个类成员)