Dodawanie vector do vector

0

Szukam w internecie i nie umiem znaleźć, czy jest funkcja dzięki której mógłbym dodać wektory do siebie ? coś w stylu

vector<int>a = {1,2,3};
vector<int>b = {4,5,6};
a.add(b);

zależmy mi też żeby ta funkcja to robiła jak najszybciej bo potrzebuje to do zadania :D

0

W wektorach nie ma dodawania, co Chcesz uzyskać jako wynik?

2

Zapewne chcesz połączyć dwa wektory, zatem, albo std::merge
albo zerknij na StackOverflow

0

Jeśli by chodziło o konkatenację, to powyższy post rozwiązuje problem (link do SO).

1

Jaki jest wynik tego działania add? Wektor {5,7,9}, czy {1,2,3,4,5,6}? A może jeszcze coś innego?

W każdym razie, pierwsze (zapisuje do a):

transform(a.cbegin(), a.cend(), b.cbegin(), a.begin(), [](int l, int r){ return l+r; });

drugie:

copy(b.cbegin(), b.cend(), back_inserter(a));
// lub
a.insert(a.end(), b.cbegin(), b.cend());

co do merge sugerowanego przez c7 to nie bardzo pasuje mi do słowa add w jakikolwiek sposób.

2

Ja raczej stawiam na to, że potrzebny jest wektor w sensie matematycznym (std::vector jest tylko do niego podobny).
Jest na to wiele rozwiązań zależnych od wymagań.
Przykładowo, czy rozmiar wektora jest znany w trakcie kompilacji?
Co jeśli wektory mają różną liczbę elementów?

1

Bardzo przepraszam za niesprecyzowanie pytania, chodziło mi o konkatenacje std::vector,

a.insert(a.end(), b.begin(), b.end());

działa znakomicie :)

1

Tak btw std::vector to nie taki wektor w sensie matematycznym. Do takich wektorów stwórz sobie osobną strukturę/klasę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1