gpt4 book ai didi

c++ - 在返回二维数组 C++ 方面需要帮助,请

转载 作者:太空狗 更新时间:2023-10-29 23:47:19 24 4
gpt4 key购买 nike

我正在尝试创建一个数组并将其传递给函数,然后函数将其返回,但我不知道返回的正确方式。我一直在浏览教程并尝试一些东西,但还没有设法解决这个问题。我是 C++ 的新手,认为它与 Java 类似,但显然不是。

这是我得到的地方:

class MainClass {

public:
static int countLetterCombinations(string array[], int numberOfWords) {
// Code
return totalCombos;
}


// This is the function I'm having trouble with.
static string** sortCombos(string combinations[][3]) {
// Do something
return combinations; // This gives converting error.
}

};


int main() {

// Code

int numberOfCombinations = MainClass::countLetterCombinations(words, numberOfWords);

string combinations[numberOfCombinations][3];

combinations = MainClass::sortCombos(combinations);

// Further code

}

有人知道如何解决这个问题吗?

最佳答案

您需要使用 vector . C++ 基于堆栈的数组不能动态调整大小 - 哦,你不能转换 [][]** ,转换仅适用于第一个维度。哦,你也不能分配给数组。

简单的规则是,在 C++ 中,永远不要使用原始数组——它们只会让人头疼。它们是从 C 继承的,它实际上定义了很多它的数组行为以与 B 的源代码兼容,而 B 非常古老。使用为您管理动态内存的类,例如 std::vector ,用于动态调整大小的数组。

std::vector<std::array<std::string, 3>> combinations(numberOfCombinations);

static void sortCombos(std::vector<std::array<std::string, 3>>& combinations) {
// Do something
} // This function modifies combinations in-place and doesn't require a return.

哦,您真的不必将函数设为静态类成员 - 它们只需进入全局命名空间即可。

关于c++ - 在返回二维数组 C++ 方面需要帮助,请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com