简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
本篇目的:理解C++之list成员函数应用。
C++中的std::list是一个双向链表的容器,它提供了许多成员函数用于对链表进行操作。以下是一些常用的std::list成员函数的列表:
构造函数:
迭代器(Iterator)相关函数:
容量相关函数:
元素访问与修改相关函数:
修改容器相关函数:
begin()
和 end()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 begin() 函数获取列表的第一个元素的迭代器
std::list<int>::iterator iterStart = myList.begin();
// 使用 end() 函数获取列表的最后一个元素的迭代器
std::list<int>::iterator iterEnd = myList.end();
// 遍历列表
for (std::list<int>::iterator iter = iterStart; iter != iterEnd; ++iter) {
std::cout << *iter << " ";
}
return 0;
}
rbegin()
和 rend()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 rbegin() 函数获取列表的最后一个元素的反向迭代器
std::list<int>::reverse_iterator iterStart = myList.rbegin();
// 使用 rend() 函数获取列表的第一个元素的反向迭代器
std::list<int>::reverse_iterator iterEnd = myList.rend();
// 遍历列表
for (std::list<int>::reverse_iterator iter = iterStart; iter != iterEnd; ++iter) {
std::cout << *iter << " ";
}
return 0;
}
empty()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 empty() 函数判断列表是否为空
if (myList.empty()) {
std::cout << "List is empty" << std::endl;
} else {
std::cout << "List is not empty" << std::endl;
}
return 0;
}
size()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 size() 函数获取列表的元素个数
std::cout << "Size of list: " << myList.size() << std::endl;
return 0;
}
max_size()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 max_size() 函数获取列表的最大容量
std::cout << "Max size of list: " << myList.max_size() << std::endl;
return 0;
}
front()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 front() 函数获取列表的第一个元素
int firstElement = myList.front();
std::cout << "First element of list: " << firstElement << std::endl;
return 0;
}
back()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 back() 函数获取列表的最后一个元素
int lastElement = myList.back();
std::cout << "Last element of list: " << lastElement << std::endl;
return 0;
}
push_back()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 push_back() 函数在列表末尾插入元素
myList.push_back(6);
// 输出列表中的元素
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
push_front()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 push_front() 函数在列表开头插入元素
myList.push_front(0);
// 输出列表中的元素
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
pop_back()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 pop_back() 函数删除列表末尾的元素
myList.pop_back();
// 输出列表中的元素
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
pop_front()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 pop_front() 函数删除列表开头的元素
myList.pop_front();
// 输出列表中的元素
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
clear()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 clear() 函数清空列表
myList.clear();
// 输出列表中的元素(为空)
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
erase()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 erase() 函数删除列表中的指定元素
std::list<int>::iterator iter = myList.erase(myList.begin()); // 删除第一个元素
// 输出列表中的元素
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
insert()
函数:#include
#include
int main() {
std::list<int> myList = {1, 2, 3, 4, 5};
// 使用 insert() 函数在指定位置插入元素
std::list<int>::iterator iter = myList.insert(myList.begin(), 0); // 在第一个元素前插入0
// 输出列表中的元素
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}