List和Array都是C++ STL库中的容器,用于存储数据。
List是一个双向链表,每个节点保存了元素的值和指向前后节点的指针。List常用于频繁的插入和删除操作,但是随机访问元素的效率较低。List的优点是可以动态地分配内存,不需要提前确定容器的大小。
Array是一个连续的内存块,用于存储相同类型的元素。Array的大小在创建时需要指定,且不能动态调整大小。Array的优点是支持随机访问,可以通过下标快速访问元素,但是插入和删除操作的效率较低。
下面是使用C++实现List和Array的示例代码:
List的实现:
```c++
#include <iostream>
#include <list>
int main() {
std::list<int> myList; // 创建一个int类型的List
// 在List中插入元素
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);
// 遍历List中的元素
for (auto it = myList.begin(); it != myList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 在List中删除元素
myList.remove(2);
// 遍历List中的元素
for (auto it = myList.begin(); it != myList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
Array的实现:
```c++
#include <iostream>
#include <array>
int main() {
std::array<int, 3> myArray = {1, 2, 3}; // 创建一个int类型的Array
// 遍历Array中的元素
for (int i = 0; i < myArray.size(); ++i) {
std::cout << myArray[i] << " ";
}
std::cout << std::endl;
// 修改Array中的元素
myArray[1] = 4;
// 遍历Array中的元素
for (int i = 0; i < myArray.size(); ++i) {
std::cout << myArray[i] << " ";
}
std::cout << std::endl;
return 0;
}
```