Я пытаюсь взять список и в зависимости от строки в списке создает новую строку в векторе 2d. Я новичок в C++ и задаю несколько вопросов:Вставить список строк в 2d-вектор
1) Могу ли я перебирать список и захватывать строку, в которой сейчас находится итератор? Если да, то как я могу добавить эту строку в вектор?
2) Как я могу реализовать это в 2d-векторе?
3) При инициализации 2d-вектора была бы функция pushback, чтобы иметь возможность увеличить размер при вставке каждого элемента? В настоящее время я инициализирую его в 10, но хочу инициализировать его в 0 и увеличить векторы, когда я вставляю строки. (Не уверен, что это лучший подход)
std::vector<std::vector<string> >myVector(10, std::vector<string>(10));
std::list<string> myList;
list<string>::iterator i;
inputList(myList);
int vectorRow = 0;
int vectorCol = 0;
//Insert list into vector
for (i = myList.begin(); i != myList.end(); i++) {
//add to the current row of the vector
if (*i == "endOfRow"){
vectorRow++;
vectorCol = 0;
} else {
//add to the column of the vector
vectorCol++;
}
}
Заранее спасибо.
«Могу ли я пройти через список» - я не знаю, не так ли? - "и захватить строку, в которой сейчас находится итератор?" - Какой смысл повторять, если бы вы не могли? – immibis
Проверить, имеет ли оно значение или имеет ли оно определенное количество значений? – Slae