本文介绍: C++ 中的 list 是一种双向链表,它提供了许多有用的操作,如插入、删除、查找和修改元素等。在 C++ 中,list 是一个模板类,用于存储同类型的元素。:可以使用构造函数创建和初始化 list 对象。方法删除指定位置的元素。方法查找指定位置的元素。的末尾或开头添加元素。是一个模板参数,用于指定。:可以使用迭代器遍历。
C++ 中的 list 是一种双向链表,它提供了许多有用的操作,如插入、删除、查找和修改元素等。以下是一篇关于 list 的基本用法详解,希望能帮助初学者掌握其基本用法:
一、list 的定义
在 C++ 中,list 是一个模板类,用于存储同类型的元素。它的定义如下:
template <class T>
class list
{
public: // ... list 的其他成员函数和变量 ...
};
其中,T 是一个模板参数,用于指定 list 中元素的类型。
二、list 的常用操作
创建和初始化:可以使用构造函数创建和初始化 list 对象。例如:
list<int> myList; // 创建一个空的 int 类型的 list 对象
或者,可以使用 insert() 方法向 list 中插入元素。
list<int> myList;
myList.insert(myList.begin(), 5); // 在 list 的开头插入元素 5
添加元素:可以使用 push_back() 或 push_front() 方法向 list 的末尾或开头添加元素。例如:
list<int> myList; myList.push_back(1); // 在末尾添加元素 1
myList.push_front(0); // 在开头添加元素 0
删除元素:可以使用 erase() 方法删除指定位置的元素。例如:
list<int> myList;
myList.push_back(1);
myList.push_back(2);
myList.erase(myList.begin() + 1); // 删除第二个元素(即 2)
查找元素:可以使用 find() 方法查找指定位置的元素。例如:
list<int> myList = {1, 2, 3, 4, 5};
auto it = myList.find(3); // 查找值为 3 的元素,返回一个迭代器指向该元素的位置
if (it != myList.end())
{ // 如果找到了元素,则迭代器不等于 end(),否则为空迭代器(指向 list 的末尾)
cout << "Found element: " << *it << endl; // 输出找到的元素的值
}
else
{
cout << "Element not found." << endl; // 没有找到元素,输出提示信息
}
修改元素:可以使用成员函数 operator[] 或 at() 方法修改 list 中的元素。例如:
list<int> myList = {1, 2, 3};
myList[1] = 4; // 将第二个元素的值为 4,原来的第二个元素值变为 3,
//第三个元素的值为 4(因为 list 是从头部开始计数的)
使用 at() 方法:
list<int> myList = {1, 2, 3};
myList.at(1) = 4; // 与上面的效果相同,使用 at() 方法修改元素更加安全,
//不会出现越界访问的情况
//(如果索引超出范围,at() 会抛出 std::out_of_range 异常)
遍历 list:可以使用迭代器遍历 list 中的所有元素。例如:
list<int> myList = {1, 2, 3, 4, 5};
for (auto it = myList.begin(); it != myList.end(); ++it)
{ // 使用迭代器遍历 list 中的所有元素,直到到达末尾为止(end() 表示指向 list 的末尾)
cout << *it << " ";
// 输出当前元素的值(注意使用 *it 来获取当前元素的引用)
}
// 或者使用范围-based for 循环(C++11及以后的版本支持)
for(const auto& value : mylist)
{
cout << value << " ";
}
原文地址:https://blog.csdn.net/shaoxiebug/article/details/134768963
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_36506.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。