【问题标题】:Returning an array with booleans c++ [duplicate]返回一个带有布尔值的数组 c++ [重复]
【发布时间】:2022-11-30 17:20:32
【问题描述】:

抱歉,如果这是预先重复的。

我试图在 C++ 中的函数中返回一个布尔数组,其中数组的大小被声明为数组的参数。

我可以做这样的事情吗?

bool returnBools(int size) {
    bool returnValue[size];

    // Do some stuff with array

    return returnValue;
}

【问题讨论】:

  • 在 C++ 中,不可能从函数返回数组。请改用std::vector
  • 是的,当您使用 std::vector 而不是 C 样式数组时。
  • 声明的返回类型bool是一个单身的值,而不是数组。而且你不能返回一个 C 风格的数组,因为它会衰减到一个指针(指向它的第一个元素),并且该指针将在函数返回后立即失效。还有C++ doesn't have variable-length arrays。使用 std::vector<bool> 代替,“数组”和返回类型。

标签: c++ arrays function boolean


【解决方案1】:

不可能从 C++(或 C)中的函数返回数组。 C++ 解决方案是使用向量。

#include <vector>

std::vector<bool> returnBools(int size) {
    std::vector<bool> returnValue(size); // note () not []

    // Do some stuff with vector

    return returnValue;
}

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2011-09-13
    相关资源
    最近更新 更多