简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:理解C++之map迭代器函数begin、end、rbegin、rend、cbegin、cend、crbegin、crend用法。
在C++中,map是一种关联容器,用于存储键-值对(key-value)数据。map提供了多种迭代器函数来遍历和访问其中的元素。
-
begin()
函数返回一个指向map
中第一个键值对的迭代器。
-
end()
函数返回一个指向map
末尾的迭代器,它并不指向实际的元素,而是指向末尾的下一个位置。
-
rbegin()
函数返回一个指向map
末尾的逆向迭代器,即指向最后一个键值对的迭代器。
-
rend()
函数返回一个指向map
开头的逆向迭代器,它并不指向实际的元素,而是指向开头的前一个位置。
-
cbegin()
函数和begin()
函数类似,返回一个指向map
中第一个键值对的常量迭代器。
-
cend()
函数和end()
函数类似,返回一个指向map
末尾的常量迭代器。
-
crbegin()
函数和rbegin()
函数类似,返回一个指向map
末尾的常量逆向迭代器。
-
crend()
函数和rend()
函数类似,返回一个指向map
开头的常量逆向迭代器。
这些迭代器函数可以用于遍历map中的元素,无论是正向还是逆向遍历。常量版本的迭代器函数(带有"c"前缀)返回的迭代器对象只能用来读取元素,不能修改元素值。
2.应用实例
1. begin()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.begin();std::cout << "The first element: " << *it << std::endl;return 0;
}
2. end()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.end() - 1;std::cout << "The last element: " << *it << std::endl;return 0;
}
3. rbegin()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.rbegin();std::cout << "The last element (reversed): " << *rit << std::endl;return 0;
}
4. rend()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.rend() - 1;std::cout << "The first element (reversed): " << *rit << std::endl;return 0;
}
5. cbegin()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.cbegin();std::cout << "The first constant element: " << *it << std::endl;return 0;
}
6. cend()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto it = numbers.cend() - 1;std::cout << "The last constant element: " << *it << std::endl;return 0;
}
7. crbegin()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.crbegin();std::cout << "The last constant element (reversed): " << *rit << std::endl;return 0;
}
8. crend()
函数:
#include <iostream>
#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};auto rit = numbers.crend() - 1;std::cout << "The first constant element (reversed): " << *rit << std::endl;return 0;
}