Функция unordered_map end () в C ++ STL
Unordered_map :: end () - это встроенная функция в C ++ STL, которая возвращает итератор, указывающий на позицию за последним элементом в контейнере unordered_map. В объекте unordered_map нет гарантии, что конкретный элемент считается его первым элементом. Но все элементы в контейнере покрываются, так как диапазон идет от его начала до конца, пока не станет недействительным.
Синтаксис:
итератор unordered_map_name.end (n)
Параметры: эта функция принимает один параметр n, который является необязательным параметром, указывающим номер сегмента. Если он установлен, итератор извлекает точки на элемент, прошедший за конец корзины, в противном случае он указывает на элемент за конец контейнера.
Возвращаемое значение: функция возвращает итератор к элементу за концом контейнера.
Ниже приведены программы, иллюстрирующие вышеупомянутую функцию:
Программа 1:
// CPP program to demonstrate the // unordered_map::end() function // returning all the elements of the multimap #include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { unordered_map<string, int > marks; // Declaring the elements of the multimap marks = { { "Rohit" , 64 }, { "Aman" , 37 }, { "Ayush" , 96 } }; // Printing all the elements of the multimap cout << "marks bucket contains : " << endl; for ( int i = 0; i < marks.bucket_count(); ++i) { cout << "bucket #" << i << " contains:" ; for ( auto iter = marks.begin(i); iter != marks.end(i); ++iter) { cout << "(" << iter->first << ", " << iter->second << "), " ; } cout << endl; } return 0; } |
марки, ведро содержит: ведро № 0 содержит: ведро №1 содержит: ведро №2 содержит: ведро №3 содержит: (Аман, 37), (Рохит, 64), ведро №4 содержит: (Аюш, 96),
Программа 2 :
// CPP program to demonstrate the // unordered_map::end() function // returning the elements along // with their bucket number #include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { unordered_map<string, int > marks; // Declaring the elements of the multimap marks = { { "Rohit" , 64 }, { "Aman" , 37 }, { "Ayush" , 96 } }; // Printing all the elements of the multimap for ( auto iter = marks.begin(); iter != marks.end(); ++iter) { cout << "Marks of " << iter->first << " is " << iter->second << " and his bucket number is " << marks.bucket(iter->first) << endl; } return 0; } |
Маркам Аюша 96, а его ведро номер 4. Маркам Амана 37, а номер его ведра 3. Марку Рохита 64 года, а его номер ведра 3.