Разница между базовыми контейнерами string, vector, list, deque, set, map в STL

Основные контейнеры в STL: строка, вектор, список, очередь, набор, карта.

И набор, и карта являются неупорядоченными элементами хранения, и доступ к элементам внутри можно получить только через интерфейс, который он предоставляет;

set: коллекция, используется для оценки того, находится ли определенный элемент в группе, используется реже,
map: сопоставление, эквивалент словаря, сопоставление одного значения с другим значением, используйте его, если вы хотите создать словарь;

Нижний слой имеет древовидную структуру, большинство из которых реализованы с использованием сбалансированного бинарного дерева (RB-Tree).Чтобы найти определенное значение, требуется постоянное время, и эффект обхода также хорош, но каждый раз, когда значение вставляется , нижний слой будет реконструирован. Сбалансированное бинарное дерево является эффективным. имеют определенное влияние.

string, vector, list, deque, set — упорядоченные контейнеры.

1, строка

string — это реализация basic_string<char>, которая постоянно хранится в памяти. Для повышения эффективности будет зарезервирована память, например строка s= "abcd", тогда пространство, используемое s, может быть равно 255. Когда строка снова добавляет содержимое в s, память снова не выделяется. снова выделяется до тех пор, пока содержимое > 255 не выделит память, что улучшит ее производительность.

Когда содержимое > 255, строка сначала выделяет новую память, затем копирует содержимое, а затем копирует предыдущее содержимое.

Для строковых операций, если он добавляется в конец, ему вообще не нужно выделять память, поэтому производительность самая быстрая;

если он по центру

Guess you like

Origin blog.csdn.net/chenlycly/article/details/40833899