简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
本篇目的:理解C++之vector成员函数begin、end、rebegin、rend、cbegin、cend、crbegin、crend作用。
C++的vector是一种动态数组,它提供了一系列成员函数来操作和访问其元素。下面是这些成员函数的作用和用法:
begin()
函数返回一个指向vector第一个元素的迭代器。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用begin()函数获取第一个元素的迭代器
std::vector<int>::iterator it = vec.begin();
// 输出第一个元素
std::cout << "第一个元素:" << *it << std::endl;
return 0;
}
end()
函数返回一个指向vector最后一个元素的下一个位置的迭代器。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用end()函数获取最后一个元素的下一个位置的迭代器
std::vector<int>::iterator it = vec.end();
// 输出最后一个元素的下一个位置的元素,此时应为未定义的值
std::cout << "最后一个元素的下一个位置的元素:" << *it << std::endl;
return 0;
}
rbegin()
函数返回一个指向vector最后一个元素的逆向迭代器。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用rbegin()函数获取最后一个元素的逆向迭代器
std::vector<int>::reverse_iterator rit = vec.rbegin();
// 输出最后一个元素
std::cout << "最后一个元素:" << *rit << std::endl;
return 0;
}
rend()
函数返回一个指向vector第一个元素的前一个位置的逆向迭代器。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用rend()函数获取第一个元素的前一个位置的逆向迭代器
std::vector<int>::reverse_iterator rit = vec.rend();
// 输出第一个元素的前一个位置的元素,此时应为未定义的值
std::cout << "第一个元素的前一个位置的元素:" << *rit << std::endl;
return 0;
}
cbegin()
函数与begin()
类似,返回一个指向vector第一个元素的const迭代器,用于访问vector的元素但不能修改它们。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用cbegin()函数获取第一个元素的const迭代器
std::vector<int>::const_iterator it = vec.cbegin();
// 尝试修改第一个元素,将会编译错误
//*it = 10;
// 输出第一个元素
std::cout << "第一个元素:" << *it << std::endl;
return 0;
}
cend()
函数与end()
类似,返回一个指向vector最后一个元素的下一个位置的const迭代器,用于访问vector的元素但不能修改它们。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用cend()函数获取最后一个元素的下一个位置的const迭代器
std::vector<int>::const_iterator it = vec.cend();
// 尝试修改最后一个元素的下一个位置的元素,将会编译错误
//*it = 10;
// 输出最后一个元素的下一个位置的元素,此时应为未定义的值
std::cout << "最后一个元素的下一个位置的元素:" << *it << std::endl;
return 0;
}
crbegin()
函数与rbegin()
类似,返回一个指向vector最后一个元素的const逆向迭代器,用于访问vector的元素但不能修改它们。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用crbegin()函数获取最后一个元素的const逆向迭代器
std::vector<int>::const_reverse_iterator rit = vec.crbegin();
// 尝试修改最后一个元素,将会编译错误
//*rit = 10;
// 输出最后一个元素
std::cout << "最后一个元素:" << *rit << std::endl;
return 0;
}
crend()
函数与rend()
类似,返回一个指向vector第一个元素的前一个位置的const逆向迭代器,用于访问vector的元素但不能修改它们。#include
#include
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用crend()函数获取第一个元素的前一个位置的const逆向迭代器
std::vector<int>::const_reverse_iterator rit = vec.crend();
// 尝试修改第一个元素的前一个位置的元素,将会编译错误
//*rit = 10;
// 输出第一个元素的前一个位置的元素,此时应为未定义的值
std::cout << "第一个元素的前一个位置的元素:" << *rit << std::endl;
return 0;
}