C++での関数からの配列の返却方法


  1. 配列を返す方法: 関数内で動的配列を作成し、そのポインタを返す方法です。呼び出し元でメモリの解放を行う必要があります。
int* createArray(int size) {
    int* arr = new int[size];
    // 配列の初期化や操作を行う
    return arr;
}
// 使用例
int main() {
    int* result = createArray(5);
    // 配列の使用
    delete[] result; // メモリの解放
    return 0;
}
  1. 配列を返す方法: 静的なローカル配列を返す方法です。ただし、この方法では配列のサイズが固定されているため、柔軟性に欠けます。
int* createArray() {
    static int arr[] = {1, 2, 3, 4, 5};
    return arr;
}
// 使用例
int main() {
    int* result = createArray();
    // 配列の使用
    return 0;
}
  1. std::arrayを使用する方法: C++11以降では、std::arrayを使って配列を返すことができます。std::arrayはサイズが固定されており、標準ライブラリで提供されています。
#include <array>
std::array<int, 5> createArray() {
    std::array<int, 5> arr = {1, 2, 3, 4, 5};
    return arr;
}
// 使用例
int main() {
    std::array<int, 5> result = createArray();
    // 配列の使用
    return 0;
}
  1. std::vectorを使用する方法: std::vectorは動的配列であり、サイズが可変です。関数内でstd::vectorを作成し、それを返すことができます。
#include <vector>
std::vector<int> createVector() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    return vec;
}
// 使用例
int main() {
    std::vector<int> result = createVector();
    // 配列の使用
    return 0;
}

これらはC++で関数から配列を返す一般的な方法のいくつかです。選択する方法は、使用するデータ構造や要件によって異なります。必要に応じて、適切な方法を選択してください。