Как динамические массивы (std::vector) работают в С++?C++

Программы на C++. Форум разработчиков
Anonymous
Как динамические массивы (std::vector) работают в С++?

Сообщение Anonymous »

Согласно тому, что я слышал, std::vector хранит данные последовательно
и когда вы пытаетесь добавить или удалить элемент, он увеличивается или уменьшается за счет выделения новой памяти и копирует все из старой памяти в новую память с изменениями и удаляет старую память.
в коде ниже у меня есть конструктор копирования
он говорит, что копируется каждый раз, когда класс копируется
он дал мне 6 скопированных сообщений, когда у меня было 3 элемента и которые было нормально
но когда я добавил еще один элемент, он выдал мне 7 сообщений.
Разве он не должен был дать мне 10?
И как это оптимизировать?
#include
#include

struct Vertex
{
int x, y, z;

Vertex(int x, int y, int z) : x(x), y(y), z(z)
{
}

Vertex(const Vertex &vetrex) : x(vetrex.x), y(vetrex.y), z(vetrex.z)
{
std::cout

Подробнее здесь: https://stackoverflow.com/questions/693 ... -work-in-c

Вернуться в «C++»