怎么删除首个和最后一个vector里的元素
时间: 2024-04-11 09:29:09 浏览: 22
要删除首个和最后一个vector里的元素,你可以使用以下方法:
1. 删除首个元素:可以使用vector的`erase`函数来删除首个元素。你可以使用`begin()`函数获取迭代器指向首个元素,然后将此迭代器传递给`erase`函数即可。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin());
```
2. 删除最后一个元素:可以使用vector的`pop_back`函数来删除最后一个元素。这个函数会自动移除最后一个元素。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.pop_back();
```
这样,你就可以删除vector中的首个和最后一个元素了。记得在使用这些操作之前,确保vector不为空,否则可能会导致未定义的行为。
相关问题
如何将一个数组赋值给vector?
可以通过以下两种方式将一个数组赋值给vector:
1. 通过循环遍历数组,将数组中的每个元素逐个插入vector中,代码如下:
```c++
int arr[5] = {1, 2, 3, 4, 5};
vector<int> vec;
for(int i = 0; i < 5; i++){
vec.push_back(arr[i]);
}
```
2. 直接使用数组的首地址和尾地址来初始化vector,代码如下:
```c++
int arr[5] = {1, 2, 3, 4, 5};
vector<int> vec(arr, arr+5);
```
其中,arr表示数组的首地址,arr+5表示数组的尾地址,即数组中最后一个元素的下一个地址。
C++两个有序vector的合并的高效算法
可以使用归并排序的思想,将两个有序的vector合并成一个有序的vector。
具体步骤如下:
1. 定义两个指针分别指向两个vector的首元素,比较两个指针所指的元素大小。
2. 将较小的元素加入结果vector,并将指向该元素的指针向后移动一位。
3. 重复步骤2,直到其中一个vector的指针指向了最后一个元素。
4. 将另一个vector剩余的元素全部加入结果vector。
5. 返回结果vector。
代码实现如下:
```c++
vector<int> merge(vector<int>& a, vector<int>& b) {
vector<int> res;
int i = 0, j = 0;
while (i < a.size() && j < b.size()) {
if (a[i] < b[j]) {
res.push_back(a[i]);
i++;
} else {
res.push_back(b[j]);
j++;
}
}
while (i < a.size()) {
res.push_back(a[i]);
i++;
}
while (j < b.size()) {
res.push_back(b[j]);
j++;
}
return res;
}
```
该算法的时间复杂度为O(n),其中n为两个vector的元素总数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)