内容提要
本文介绍了C++中列表(list)与动态数组(vector)的区别,包括声明、初始化、设置值、打印元素及从其他列表、数组或向量复制元素的方法,同时总结了列表的构造函数和时间复杂度。
关键要点
-
C++中的列表是双向链表的库,动态数组是动态数组的库。
-
声明列表的方式为:list<type> myList;。
-
初始化列表的时间复杂度为O(1)。
-
可以通过list<type> myList(N)来初始化一个包含N个元素的列表。
-
设置列表的值可以使用list<type> myList(N, P)来创建一个包含N个元素且值为P的列表。
-
打印列表中的所有值可以使用迭代器或范围基于的for循环。
-
可以通过复制另一个列表来创建新列表,例如list myList(list2)。
-
可以使用数组或向量的元素来初始化列表,例如list myList(A, A + N)或list myList(v.begin(), v.end())。
-
列表构造函数的总结:
-
list myList - 构造一个包含0个元素的列表,时间复杂度O(1)。
-
list myList(N) - 构造一个包含N个元素的列表,值为垃圾,时间复杂度O(N)。
-
list myList(N, P) - 构造一个包含N个元素且值为P的列表,时间复杂度O(N)。
-
list myList(list2) - 通过复制另一个列表list2构造新列表,时间复杂度O(N)。
-
list myList(A, A + N) - 通过复制数组A的所有元素构造新列表,时间复杂度O(N)。
-
list myList(v.begin(), v.end()) - 通过复制向量v的所有元素构造新列表,时间复杂度O(N)。
延伸问答
C++中如何声明一个列表?
可以使用list<type> myList;来声明一个列表。
如何初始化一个包含N个元素的列表?
可以使用list<type> myList(N)来初始化一个包含N个元素的列表。
C++列表的构造函数有哪些?
构造函数包括list myList,list myList(N),list myList(N, P),list myList(list2),list myList(A, A + N),list myList(v.begin(), v.end())。
如何打印列表中的所有值?
可以使用迭代器或范围基于的for循环来打印列表中的所有值。
C++列表与动态数组的主要区别是什么?
列表是双向链表的库,而动态数组是动态数组的库。
如何通过复制另一个列表来创建新列表?
可以使用list myList(list2)来通过复制另一个列表list2构造新列表。