调整动态字符串数组的大小

时间:2018-03-31 20:58:18

标签: c++ arrays string dynamic

如何在不使用std::string**等C方法的情况下在C ++中调整动态多维数组malloc/free的大小?

1 个答案:

答案 0 :(得分:5)

在C ++中不可能重新分配数组/矩阵。因此,如果要调整数组大小,则需要使用C函数 realloc new[] + copy + delete[]的组合。

但最好的选择是使用C ++标准库(std::vector),因为允许您插入/删除/更新而不考虑内存重新分配。

示例(C ++ 11):

#include <string>
#include <vector>

int main(){
    // *using* is like a alias: when the compiler finds the type "stringVec" 
    // it will replace by "std::vector<std::string>"
    using stringVec = std::vector<std::string>;

    std::vector<stringVec> matrix;
    matrix.push_back({"1", "2", "3"}); // inserts a row
}