如何在C++中返回 2D 字符串数组/矢量

how to return 2D string array/vector in C++

本文关键字:字符串 数组 矢量 2D 返回 C++      更新时间:2023-10-16

我有这样的函数

typedef vector<vector<string> > vecArray;
vecArray dul();
vecArray dul() {
    vecArray arr = {
                    { "a", "b", "c" },
                    { "a", "b", "c" },
                    { "a", "v", "d" }
                    };
    return arr;
}

我想在函数中返回看起来像波纹管字符串C++

{
{"ffsff","aaaasda","ddaddd"},
{"sfsasda","sdadsfd","asasaad"},
{"adacv","fasfaa","asa","aba"}
}

不能使用初始值设定项列表构造向量,因为该功能仅在 C++11 中可用。不过,您可以轻松地使用 2D 数组构建矢量。

vecArray dul() {
    string arrTemp [3][3] = //create 2D array of strings
        {
            { "a", "b", "c" },
            { "a", "b", "c" },
            { "a", "v", "d" }
        };
    vecArray arr; //here's our vector
    //for 3 arrays, push each onto back of vector using the iterator constructor
    for (vecArray::size_type i = 0; i < 3; ++i) 
        arr.push_back (vector<string> (arrTemp [i], arrTemp [i] + 3));
    return arr;
}