使用vector和结构体定义静态链表 c++且vector不初始化大小
时间: 2023-11-29 10:47:50 浏览: 88
使用vector和结构体可以定义静态链表,具体实现如下:
```c++
#include <iostream>
#include <vector>
using namespace std;
struct Node {
int val;
int next;
};
int main() {
vector<Node> list;
list.push_back({1, 2});
list.push_back({2, 3});
list.push_back({3, -1});
for (int i = 0; i < list.size(); i++) {
cout << list[i].val << " " << list[i].next << endl;
}
return 0;
}
```
上述代码中,我们定义了一个结构体Node,包含两个成员变量val和next,分别表示节点的值和下一个节点的下标。然后我们使用vector来存储这些节点,vector的大小会根据我们push_back的元素数量自动调整。最后我们遍历vector,输出每个节点的值和下一个节点的下标。
如果不想初始化vector的大小,可以直接使用默认构造函数创建一个空的vector,然后通过push_back方法添加元素。具体实现如下:
```c++
#include <iostream>
#include <vector>
using namespace std;
struct Node {
int val;
int next;
};
int main() {
vector<Node> list;
list.push_back({1, 2});
list.push_back({2, 3});
list.push_back({3, -1});
for (int i = 0; i < list.size(); i++) {
cout << list[i].val << " " << list[i].next << endl;
}
return 0;
}
```
上述代码中,我们创建了一个空的vector,然后通过push_back方法添加元素。
阅读全文