C++ multimap::crbegin() 函数



C++ 的 std::multimap::crbegin() 函数用于返回指向最后一个元素的常量反向迭代器,允许从容器的末尾到开头进行只读遍历。此函数确保元素以反序访问,并且不允许修改。它主要用于只读操作的场景,例如以反序访问和检查元素。此函数的时间复杂度为常数,即 O(1)。

语法

以下是 std::multimap::crbegin() 函数的语法。

const_reverse_iterator crbegin() const noexcept;

参数

它不接受任何参数。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

返回值

此函数返回一个常量反向迭代器。

示例

让我们看下面的例子,我们将演示 crbegin() 函数的基本用法。

Open Compiler
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a = {{1, "Hello"},{3, "Namaste"}, {2, "Hi"}}; auto x = a.crbegin(); std::cout <<"(" << x->first << ", " << x->second << ")\n"; return 0; }

输出

以上代码的输出如下:

(3, Namaste)

示例

考虑下面的例子,我们将使用 crbegin() 以反序迭代 multimap。它迭代直到到达 crend()。

Open Compiler
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a = {{2, "TP"}, {3, "TutorialsPoint"}, {1, "Tutorix"}}; for (auto x = a.crbegin(); x != a.crend(); ++x) { std::cout << "(" << x->first << ", " << x->second << ")\n"; } return 0; }

输出

以下是以上代码的输出:

(3, TutorialsPoint)
(2, TP)
(1, Tutorix)

示例

在下面的示例中,我们将以反序查找特定的元素。

Open Compiler
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a = {{3, "BMW"}, {1, "Cruze"}, {2, "Sail"}}; for (auto x = a.crbegin(); x != a.crend(); ++x) { if (x->first == 1) { std::cout << "" << x->second << std::endl; break; } } return 0; }

输出

让我们编译并运行以上程序,这将产生以下结果:

Cruze

示例

以下是以反序比较值的示例。

Open Compiler
#include <iostream> #include <map> int main() { std::multimap<int, std::string> x = { {1, "A"}, {2, "B"}, {3, "C"} }; std::multimap<int, std::string> y = { {3, "C"}, {2, "B"}, {1, "A"} }; bool equal = std::equal(x.crbegin(), x.crend(), y.crbegin(), y.crend()); std::cout << (equal ? "Multimaps are equal." : "Multimaps are not equal.") << '\n'; return 0; }

输出

如果我们运行以上代码,它将生成以下输出:

Multimaps are equal.
multimap.htm
广告