Как осуществить ввод вектора с клавиатуры?
Возникла проблема с вводом векторов int и char при заполнении record r, как это правильно осуществить?
#include <stdio.h>
const size_t blockSize = 9;
struct record //запись с данными
{
float key; //ключ
vector<int> intData; //должен быть массивом
vector<char> charData; // должен быть массивом
float floatData; //инфа
};
struct block //блок
{
size_t cnt; //кол-во записей в блоке
record cells[blockSize]; //ячейки блока
block* prev = nullptr; //предыдущий элемент
block* next = nullptr; //следующий элемент
};
struct blockList //список
{
block* head = nullptr; //указатель на голову списка
block* tail = nullptr; //указатель на хвост списка
};
int main()
{
blockList l;
int N;
while (1)
{
cin >> N;
if (N == 1)
{
cout << "1. Input to the start:" << endl;
record r;
cout << "Input key: ";
cin >> r.key;
cout << "input intData: ";
cin >> n;
for (size_t i = 0; i < n; i++) //один способ
{
cin >> K;
r.intData.push_back(K);
}
cout << "input charData: ";
while (cin >> P && P != 'q') r.charData.push_back(P); // второй способ
cout << "input floatData: ";
cin >> r.floatData;
blockList_add_begin(&l, &r);
blockList_print(&l);
}
}
}