std::vector<int>尾插数据
时间: 2023-08-21 18:09:14 浏览: 114
您可以使用std::vector的push_back函数来进行尾插数据。下面是一个示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
// 尾插数据
vec.push_back(10);
vec.push_back(20);
vec.push_back(30);
// 打印向量中的数据
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
```
这段代码会创建一个空的std::vector,然后使用push_back函数向向量中尾插数据。最后,通过循环打印出向量中的数据,输出结果为:10 20 30。
相关问题
c/c++vector<int>怎么转换链表编程举例说明
可以使用链表的头插法或尾插法来将vector<int>转换为链表。以下是一个使用头插法的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* vectorToListNode(vector<int>& nums) {
ListNode* dummy = new ListNode(0);
for (int i = nums.size() - 1; i >= 0; i--) {
ListNode* node = new ListNode(nums[i]);
node->next = dummy->next;
dummy->next = node;
}
return dummy->next;
}
int main() {
vector<int> nums = {1, 2, 3, 4, 5};
ListNode* head = vectorToListNode(nums);
while (head != NULL) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
return 0;
}
```
该代码将vector<int> {1, 2, 3, 4, 5} 转换为链表 5 -> 4 -> 3 -> 2 -> 1。
c语言实现std::vector尾插
引用和提供了C++语言STL中vector尾插的实现方法,C语言中类似的实现需要自己动手实现动态数组的功能。以下是一种可以实现vector尾插的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct vector {
int* data;
size_t size; // 当前元素数量
size_t capacity; // 容量大小
} vector;
void vector_init(vector* v) {
v->size = 0;
v->capacity = 2;
v->data = malloc(sizeof(int) * v->capacity);
}
size_t vector_size(vector* v) {
return v->size;
}
size_t vector_capacity(vector* v) {
return v->capacity;
}
void vector_push_back(vector* v, int value) {
if (v->size >= v->capacity) {
v->capacity *= 2;
v->data = realloc(v->data, sizeof(int) * v->capacity);
}
v->data[v->size++] = value;
}
void vector_free(vector* v) {
free(v->data);
}
int main() {
vector v;
vector_init(&v);
vector_push_back(&v, 1);
vector_push_back(&v, 2);
vector_push_back(&v, 3);
printf("vector size: %zu\n", vector_size(&v));
printf("vector capacity: %zu\n", vector_capacity(&v));
for (size_t i = 0; i < vector_size(&v); ++i) {
printf("%d ", v.data[i]);
}
printf("\n");
vector_free(&v);
return 0;
}
```
在上述代码中,`vector`结构体包含了一个指针`data`,该指针指向动态数组的起始地址,`size`表示当前元素数量,`capacity`表示容量大小。 `vector_init()`函数用于初始化一个动态数组,`vector_push_back()`函数用于在动态数组末尾插入元素,`vector_size()`和`vector_capacity()`函数分别用于获取当前元素数量和容量大小。最后,`vector_free()`函数用于释放动态数组内存。
阅读全文