C++における参照を使ったベクトルの送信方法


  1. 参照を使った関数の定義と呼び出し:
void modifyVector(std::vector<int>& vec) {
    // ベクトルの変更処理を行う
    vec.push_back(10);
    vec.pop_back();
}
int main() {
    std::vector<int> myVector = {1, 2, 3};
    modifyVector(myVector);
    // myVectorは変更された状態で残ります
    return 0;
}

この例では、modifyVector関数がstd::vector<int>&タイプの参照を受け取ります。関数内で行われる変更は元のベクトルに反映されます。

  1. 関数の戻り値として参照を使用する方法:
std::vector<int>& getModifiedVector(std::vector<int>& vec) {
    // ベクトルの変更処理を行う
    vec.push_back(10);
    vec.pop_back();
    return vec;
}
int main() {
    std::vector<int> myVector = {1, 2, 3};
    std::vector<int>& modifiedVector = getModifiedVector(myVector);
    // modifiedVectorは変更されたmyVectorへの参照です
    return 0;
}

この例では、getModifiedVector関数がstd::vector<int>&タイプの参照を受け取り、変更されたベクトルへの参照を返します。

  1. ベクトルの要素を参照として渡す方法:
void modifyVectorElement(int& element) {
    // 要素の変更処理を行う
    element = 10;
}
int main() {
    std::vector<int> myVector = {1, 2, 3};
    modifyVectorElement(myVector[0]);
    // myVectorの最初の要素は変更されます
    return 0;
}

この例では、modifyVectorElement関数がint&タイプの参照を受け取ります。関数内で行われる変更は元のベクトルの要素に反映されます。

これらの方法を使ってベクトルを参照として送信することができます。これにより、関数内での変更が呼び出し元に反映され、効率的なデータの受け渡しが可能になります。