Тема: Дії з векторами
Доброго дня.
Є дві послідовності інтів A[m] та B[k], які користувач вводить з клавіатури. -1 - це число, після якого введення припиняється.
При введенні чисел у другу послідовність перша змінюється наступним чином:
якщо B[k]>0, то в кінець першої послідосності додаємо число B[k] , B[k] кількість разів
якщо B[k]=0, то нічого не робимо
якщо B[k]<0, то видаляємо з першої послідовності видаляємо останні |B[k]| елементів
якщо B[k]<0 та в першій послідовності меньше елементів ніж B[k], то виводимо на екран -1
В кінці вивести елементи першої послідовності A[m]
приклад введення
Input:
1 2 3 4 5 6 -1 2 -1
Output:
1 2 3 4 5 6 2 2 -1
Я реалізував все за допомогою векторів. Але є проблеми з додаванням елементів в першу послідовність та з видаленням. Десь є помилка. Код нижче. Допоможіть, будь ласка.
#include "pch.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> masA;
int num,tn=-1;
cout << "inpt sequ A:";
do
{
cin >> num;
if (num != -1)
masA.push_back(num);
} while (num != -1);
vector <int> masB;
cout << "inpt sequ B:";
do
{
cin >> num;
if(num!=-1)
masB.push_back(num);
if (num > 0)
masA.insert(masA.end(), num, num);
if (num < 0)
{
if (masA.size() < abs(num))
num = -1;
else
masA.erase(masA.begin()+(masA.size()-abs(num)),masA.end());
}
} while (num != -1);
cout << "output sequ A:";
for (auto x : masA)
cout << x << ' ';
cout << tn <<endl;
return 0;
}