💡
原文英文,约600词,阅读约需2分钟。
📝
内容提要
本文介绍了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构造新列表。
➡️