Пространства имён
Варианты
Действия

std::unordered_map::operator[]

Материал из cppreference.com

<metanoindex/>

 
 
 
std::unordered_map
 
<tbody> </tbody>
T& operator[]( const Key& key );
(1) (начиная с C++11)
T& operator[]( Key&& key );
(2) (начиная с C++11)
Вставляет новый элемент в контейнере с помощью key в качестве ключа и конструктором по умолчанию отображенные значения и возвращает ссылку на вновь построенные отображаются значения. Если элемент с ключом key уже существует, вставка не выполняется, и ссылка на ее значение отображается возвращается.
Оригинал:
Inserts a new element to the container using key as the key and default constructed mapped value and returns a reference to the newly constructed mapped value. If an element with key key already exists, no insertion is performed and a reference to its mapped value is returned.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

1)

По сути выполняет (insert(std::make_pair(key, T())).first)->second.
Оригинал:
Essentially performs (insert(std::make_pair(key, T())).first)->second.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

2)

По сути выполняет (insert(std::make_pair(std::move(key), T())).first)->second.
Оригинал:
Essentially performs (insert(std::make_pair(std::move(key), T())).first)->second.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Если происходит вставка, результатом которой является перехеширование контейнера, все итераторы аннулируются. В противном случае итераторы и указатели остаются без изменений. Перехеширование происходит только если число элементов больше, чем max_load_factor()*bucket_count().

Параметры

key
Ключ элемента найти
Оригинал:
the key of the element to find
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Возвращаемое значение

Ссылка на отображенное значение нового элемента, если нет элемента с ключом key существовало. В противном случае ссылка на отображенное значение существующего элемента возвращается.
Оригинал:
Reference to the mapped value of the new element if no element with key key existed. Otherwise a reference to the mapped value of the existing element is returned.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Сложность

Average case: constant, worst case: linear in size.

Пример

См. также

(C++11)
предоставляет доступ к указанному элементу с проверкой границ
(public функция-элемент) [править]

Пример

Подсчет вхождений каждого слова в векторе строк .

Оригинал:

Counts the occurrences of each word in a vector of strings.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

#include <string>
#include <iostream>
#include <vector>
#include <unordered_map>

int main()
{
    std::vector<std::string> words = {
        "this", "sentence", "is", "not", "a", "sentence",
    "this", "sentence", "is", "a", "hoax"
    };

    std::unordered_map<std::string,size_t>  word_map;
    for (auto w : words) {
        ++word_map[w];
    }

    for (auto elem : word_map) {
        std::cout << elem.second
              << " occurrences of word '"
              << elem.first << "'\n";
    }
}

Вывод:

1 occurrences of word 'hoax'
2 occurrences of word 'this'
2 occurrences of word 'a'
2 occurrences of word 'is'
1 occurrences of word 'not'
3 occurrences of word 'sentence'