Академический Документы
Профессиональный Документы
Культура Документы
#include <map>
…
map < тип ключа, тип значения> имя словаря;
multimap < тип ключа, тип значения> имя словаря;
mp["привет"] = "hi";
При создании map все его элементы будут иметь значение нуля.
advance(it, 7);
advance(it, -5);
Она сдвигает указанный итератор вниз или вверх на указанное количество ячеек. В
нашем случае он сначала увеличит на 7, а потом уменьшит на 5, в итоге получится сдвиг
на две вверх.
Вывод контейнера
#include <iostream>
#include <map>
Методы map
insert
Это метод вставки нового элемента.
mp[ключ] = значение;
count
Возвращает количество элементов с данным ключом. В нашем случае будет возвращать
— 1 или 0.
find
У этого метода основное назначение узнать, есть ли определенный ключ в контейнере.
#include <iostream>
#include <map> // подключили библиотеку
int main() {
map <string, string> book;
book["book"] = "книга"; // добавили пару "book" - "книга"
map <string, string> :: iterator it;
it = book.find("book"); // определили итератор на ключ "book"
if (it == book.end()) { //если такого ключа нет, то есть it == book.end()
cout << "Ключа со значением 'books' нет";
}
else
cout << it -> second << endl;
return 0;
}
erase
erase удаляет элемент из контейнера
Ключом может быть любая переменная. Это огромный плюс, например если
придется делать словарь.
Минусы:
Долгое добавление нового элемента.
Долгое обращение к элементу.
Долгое удаление нового элемента.
Также слишком затратный по памяти
Все эти операции происходят за — log n ( n — это размер контейнера).
Подытожим:
Входные данные
Вводится текст.
Выходные данные
Выведите ответ на задачу.
Примеры
входные данные
one two one tho three
выходные данные
0 0 1 0 0
входные данные
She sells sea shells on the sea shore;
The shells that she sells are sea shells I'm sure.
So if she sells sea shells on the sea shore,
I'm sure that the shells are sea shore shells.
выходные данные
0 0 0 0 0 0 1 0 0 1 0 0 1 0 2 2 0 0 0 0 1 2 3 3 1 1 4 0 1 0 1 2 4 1 5 0 0
4.
Литература
Антти Лааксонен
Олимпиадное программирование. / пер. с англ. А.А. Слинкин – М.: ДМК Пресс,
2018. – 300 с.: ил
https://codelessons.ru