LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

Вы тут в примере 2 забыли про итерацию второго вектора.

И правда.

Case 2, пример 2 (исправленный): «плюс» означает сумму элементов массивов:

#include <iostream>
#include <vector>

using namespace std;


vector<int> operator+(vector<int> &a, vector<int> &b)
{
        vector<int> r;
        auto i_b = b.begin();

        for (auto e_a: a)
                if (i_b != b.end()) {
                        r.push_back(e_a + *i_b);
                        i_b++;
                }

        return r;
}


int main()
{
        vector<int> v1 = {1, 2, 3};
        vector<int> v2 = {4, 5, 6};
        vector<int> v3;

        v3 = v1 + v2;

        cout << "Vector content: ";
        for (auto e: v3)
                cout << e << " ";
        cout << endl;
}

$ g++ ./cpp_vector_add.cpp && ./a.out
Vector content: 5 7 9

Исходная версия Kroz, :

Вы тут в примере 2 забыли про итерацию второго вектора.

И правда.

Case 2, пример 2 (исправленный): «плюс» означает сумму элементов массивов:

#include <iostream>
#include <vector>

using namespace std;


vector<int> operator+(vector<int> &a, vector<int> &b)
{
        vector<int> r;
        auto i_b = b.begin();

        for (auto e_a: a)
                if (i_b != b.end()) {
                        r.push_back(e_a + *i_b);
                        i_b++;
                }

        return r;
}


int main()
{
        vector<int> v1 = {1, 2, 3};
        vector<int> v2 = {4, 5, 6};
        vector<int> v3;

        v3 = v1 + v2;

        cout << "Vector content: ";
        for (auto e: v3)
                cout << e << " ";
        cout << endl;
}


$ g++ ./cpp_vector_add.cpp && ./a.out
Vector content: 5 7 9