Найти тему
128 подписчиков

Плюсы начались неожиданно, несколько неочевидных фактов про вектор в с++ (в учебном проекте надо реализовать свои классы-контейнеры)


метод clear() не чистит вектор, а зачищает его размер, в итоге к старым элементам можно обратиться, если вектор не перезаписан. Я хотела полностью чистить, как аналог деструктора.(

метод pop_back() работает аналогично clear():D завязка больше на push_back(), который вставляет элементы в конец вектора, но не по вместимости (capacity), а по размеру. Отсюда логично не перезатирать последний элемент впустую, а перезаписывать новым.

итератор это не int. int это не итератор. но разница итераторов это int.

если вектор пустой, то при пуше выделится память на 1 элемент. Потом 2. Потом 4. Дальше суть ясна.

insert(*) может добавлять за пределы вектора, при этом довыделяя память. Но это не точно. Возможно. Противоречиво. Моя реализация точно может.

квадратными скобками можно получить любой элемент. Даже тот, которого нет. Поэтому лучше использовать at(*).
Около минуты