如何为二维字符串动态分配内存,如下所示。
struct sample {
int i;
std::string arrray [10][10];
};如何为下面的内存动态分配内存?
struct sample {
int i;
std::string **arrray;
};发布于 2013-11-23 03:57:24
第一个不需要内存分配(当您在structs中声明C样式数组时,编译将在struct中为它们分配空间)。
第二个是相当标准的2D数组。
arrray = new string*[10];
for (int i = 0; i < 10; i++)
arrray[i] = new string [10]; 发布于 2013-11-23 04:57:15
步骤1:使用std::向量来保存字符串指针;
步骤2:使用您自己定义的类(向量容器)封装向量;
第三步:覆盖2维operator[],映射2D下标到std::矢量大小;
第四步:现在的问题是,如何操作2D下标?您可以定义另一个“朋友类”,向量容器的[]返回一个朋友类,朋友类也有一个[],它返回std::vector中的值。
不要忘记更改大小的成员函数。
https://stackoverflow.com/questions/20158325
复制相似问题