Size: a a a

IT KPI C/C++ ХВ (не UB)

2021 May 05

VI

Vladimir Ivanov in IT KPI C/C++ ХВ (не UB)
а пушбек ещё и вставляет
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Ты сам пушбек написал выше
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Только не эффективный
источник

VI

Vladimir Ivanov in IT KPI C/C++ ХВ (не UB)
Ну человек хотел без пушбека
источник

VI

Vladimir Ivanov in IT KPI C/C++ ХВ (не UB)
Вот решение без пушбека
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Он хотел без "алгоритмов"
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Я лично не вижу отличия между ресайзом и пушбек, и то и другое метод вектора 🤷‍♂
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
"олгоритм этот ваш нам и нахой не нужон"
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
(с) препод чела
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
Там еще какой-то emplace есть или что-то в этом духе. Но да, отличия особо нет.
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Откровенно говоря и .size тогда зло
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Олгоритм!
источник

 ‌  ... in IT KPI C/C++ ХВ (не UB)
Не, ну вообще. Если он сделает ресайз, а потом просто что-то типа for (auto& v : vec)  std::cin >> v;
То это будет лучше пушбека
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
Ну на сколько я знаю, push_back выделяет не 1 элемент, а сразу приличный такой блок памяти и потом просто пихает элементы, вставляемые при помощи след. вызовов push_back пока не дойдёт до конца массива. Тогда след. push_back расширит массив ещё больше(как правило в 2 раза вроде) и по новой.
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
А вот resize - он автоматом ищет место в памяти, куда можно весь этот массив с увеличением 1 эл-т поместить.
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
Так вот этот самый поиск и занимает самое большое время.
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
Оптимальнее push_back, думаю.
источник

 ‌  ... in IT KPI C/C++ ХВ (не UB)
Но если ты знаешь сразу размер массива и он достаточно большой, то лучше сразу выделить. Каждый раз увеличивая место он будет точно так же искать куда вписать это + ему нужно будет переместить все данные старого массива в новый
источник

MI

Moraband Imperium in IT KPI C/C++ ХВ (не UB)
поможешь, смотри
источник

MI

Moraband Imperium in IT KPI C/C++ ХВ (не UB)
vector<int> massR(m);
int a = 0;
for (int i = 0; i < mas1.size(); i++) {
 for (int j = 0; j < mas1[i].size(); j++) {
   a += mas1[i][j] + mas1[i][j+1];
  massR.push_back(a);
 }
}
источник