Есть двумерный вектор std::vector< std::vector < int> > vecInt1
.
Как задать и изменить кол-во элементов в строке и столбце во время исполнения программы? Т.е. к примеру сначала был вектор 10*6, потом стал 15*13 и т.д.
Использовать vector::assign
:
a.assign(число_строк, vector<int>(число_столбцов));
или с одновременным заполнением всех элементов новым значением:
a.assign(число_строк, vector<int>(число_столбцов, новое_значение));
Некоторые пояснения:
vector
есть несколько конструкторов, в том числе:
vector(число_элементов)
— создаёт вектор указанного размера, элементы инициализируются конструктором по умолчаниюvector(число_элементов, значение)
— создаёт вектор указанного размера и заполняет его копиями переданного значенияvector::assign
, которые принимает новое число элементов и значение, которыми новые элементы будут заполненыНу и ещё небольшой пример на Ideone:
#include <vector>
#include <iostream>
using namespace std;
int main() {
// пустой вектор
vector<vector<int>> a;
// вектор размера 7 x 5
// то есть семь строчек, каждая строчка состоит из пяти элементов
a.assign(7, vector<int>(5));
cout << "число строк: " << a.size() << endl;
for (size_t i = 0; i < a.size(); ++i)
cout << "число элементов в " << i << "-ой строчке: " << a[i].size() << endl;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Выполнял задание, встал перед вопросом, все выполнено, но необходима проверка вводаПолучилось следующее
Допустим вам требуется вручную выровнять все поля структуры по 4 байтаВыглядит это примерно так: