Вы задаете два вопроса: как добавить два вектора и как ввести два набора чисел.
Что касается первого, я бы использовал std::vector::insert
, как описали другие. Что касается второго, у меня есть две альтернативы.
Вы можете использовать значение часового (например, -1, если все другие числа положительны), чтобы указать конец первого списка. Если это не вариант, вы можете прочитать первый набор чисел в одной строке вместо нескольких строк.
Вот две программы, которые делают то, что вы пытаетесь сделать.
Во-первых, программа, которая использует -1 в качестве значения часового:
#include <iostream>
using std::cin;
using std::cout;
#include <iterator>
using std::ostream_iterator;
#include <vector>
using std::vector;
int main()
{
int i;
vector<int> v1;
while(cin >> i) {
if(i == -1)
break;
v1.push_back(i);
}
vector<int> v2;
while(cin >> i)
v2.push_back(i);
v1.insert(v1.end(), v2.begin(), v2.end());
copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, ", "));
}
Далее, программа, которая читает первый набор чисел из одной строки, а второй набор чисел из следующей строки:
#include <iostream>
using std::cin;
using std::cout;
using std::getline;
using std::ostream;
using std::istream;
#include <sstream>
using std::stringstream;
#include <iterator>
using std::ostream_iterator;
#include <vector>
using std::vector;
#include <string>
using std::string;
vector<int>
fetch(ostream& os, istream& is)
{
vector<int> result;
os << "Enter several values, all one one line:\n";
string line;
getline(is, line);
stringstream sline(line);
int i;
while(sline >> i)
result.push_back(i);
return result;
}
int main()
{
vector<int> v1(fetch(cout, cin));
vector<int> v2(fetch(cout, cin));
v1.insert(v1.end(), v2.begin(), v2.end());
copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, ", "));
cout << "\n";
}