c++list容器(c++list容器的所有函数)

[img]

简介:

C++中的STL容器提供了方便的数据结构,其中之一就是C List容器。C List容器是一个双向链表,可以在容器的首部、尾部、或者指定位置添加、删除元素。本文将详细介绍C List容器的使用方法。

多级标题:

一、C List容器的定义与初始化

二、C List容器的插入

三、C List容器的删除

四、C List容器的访问

五、C List容器的遍历

六、C List容器的排序

内容详细说明:

一、C List容器的定义与初始化

定义C List容器使用以下代码:

```

#include

using namespace std;

list mylist;

```

以上代码定义了一个空的C List容器`mylist`,可以向其中添加元素。

如果需要在容器中存储其他数据类型,只需将`int`替换为相应的数据类型即可。

初始化C List容器并添加元素的方法有以下两种:

1.使用push_back()和push_front()函数向容器的末尾和开头添加元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist;

mylist.push_back(1);

mylist.push_back(2);

mylist.push_front(0);

return 0;

```

2.使用初始化列表(initializer_list)向容器中添加元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist = {0, 1, 2};

return 0;

```

二、C List容器的插入

在C List容器中,可以在任意位置插入元素。以下是三种常用的插入方法。

1.使用insert()函数在指定位置插入元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist = {1, 2, 3};

list::iterator it = mylist.begin(); //定义迭代器it

mylist.insert(it, 0); //在指定位置插入元素0

return 0;

```

2.使用insert()函数在指定位置插入指定数量的元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist = {1, 2, 3};

list::iterator it = mylist.begin(); //定义迭代器it

mylist.insert(it, 2, 0); //在指定位置插入2个元素0

return 0;

```

3.使用insert()函数在指定位置插入另一个C List容器的元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist1 = {1, 2, 3};

list mylist2 = {4, 5, 6};

list::iterator it = mylist1.begin(); //定义迭代器it

mylist1.insert(it, mylist2.begin(), mylist2.end()); //在指定位置插入mylist2的元素

return 0;

```

三、C List容器的删除

C List容器提供了remove()和erase()函数来删除元素。

以下是两种常用的删除方法。

1.使用remove()函数删除指定值的元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist = {1, 2, 3, 2, 4};

mylist.remove(2); //删除元素2

return 0;

```

2.使用erase()函数删除指定位置或指定范围的元素,示例代码如下:

```

#include

using namespace std;

int main()

list mylist = {1, 2, 3, 4, 5};

list::iterator it1 = mylist.begin(); //定义迭代器it1

list::iterator it2 = mylist.begin();

it2++; it2++; //it2指向第二个元素

mylist.erase(it1, it2); //删除从开头到第二个元素(不包括第二个元素)

return 0;

```

四、C List容器的访问

可以通过下标访问C List容器中的元素,但是C List容器没有提供下标运算符,需要使用`std::advance()`函数和迭代器来访问指定位置的元素。以下是两种访问方法:

1.使用std::advance()函数和迭代器访问指定位置的元素,示例代码如下:

```

#include

#include

using namespace std;

int main()

list mylist = {1, 2, 3};

list::iterator it = mylist.begin(); //定义迭代器it

advance(it, 1); //it向后移动一位

cout << *it << endl; //输出it所指向的元素

return 0;

```

2.使用begin()和end()函数访问指定范围内的元素,示例代码如下:

```

#include

#include

using namespace std;

int main()

list mylist = {1, 2, 3};

for (list::iterator it = mylist.begin(); it != mylist.end(); it++)

{

cout << *it << " "; //输出it所指向的元素

}

cout << endl;

return 0;

```

五、C List容器的遍历

C List容器可以通过迭代器来遍历,以下是两种遍历方法。

1.使用for循环和迭代器遍历,示例代码如下:

```

#include

#include

using namespace std;

int main()

list mylist = {1, 2, 3};

for (list::iterator it = mylist.begin(); it != mylist.end(); it++)

{

cout << *it << " "; //输出it所指向的元素

}

cout << endl;

return 0;

```

2.使用auto和范围for循环遍历,示例代码如下:

```

#include

#include

using namespace std;

int main()

list mylist = {1, 2, 3};

for (auto i : mylist)

{

cout << i << " "; //输出i

}

cout << endl;

return 0;

```

六、C List容器的排序

C List容器可以使用sort()函数进行排序,从而方便地获取按照一定顺序排列的元素。

示例代码如下:

```

#include

#include

using namespace std;

int main()

list mylist = {3, 1, 2};

mylist.sort(); //排序

for (auto i : mylist)

{

cout << i << " "; //输出i

}

cout << endl;

return 0;

```

以上就是关于C List容器使用的详细介绍,希望对读者有所帮助。

标签列表