vector动态数组的基本操作

目录

 

Vector动态数组的操作

在数组中插入元素

代码示例

运行结果

输出开始和结尾的元素

代码示例

运行结果

在数组中删除元素

代码示例

运行结果

清空数组&数组元素互换&判断数组是否为空

程序示例

运行结果

小练习

题目要求

代码示例


Vector动态数组的操作

在数组中插入元素

代码示例

#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()  
{  
    vector<int> Darray{ 1,2,3,4,5 };  
    Darray.push_back(6); // 在数组结尾插入新元素  
    Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素  
    int Array[] = { 7,8,9 };  
    Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));  
    // 在倒数第二个位置插入数组  
} 

 

 

运行结果

 

输出开始和结尾的元素

代码示例

#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()  
{  
    vector<int> Darray{ 1,2,3,4,5 };  
    Darray.push_back(6); // 在数组结尾插入新元素  
    Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素  
    int Array[] = { 7,8,9 };  
    Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));  
    // 在倒数第二个位置插入数组  
    cout << Darray.back() << endl; // 输出最后的元素  
    cout << Darray.front() << endl; // 输出最开始的元素  
}  

 

运行结果

 

在数组中删除元素

代码示例

#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()  
{  
    // 插入  
    vector<int> Darray{ 1,2,3,4,5 };  
    Darray.push_back(6); // 在数组结尾插入新元素  
    Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素  
    int Array[] = { 7,8,9 };  
    Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));  
    // 在倒数第二个位置插入数组  
  
    // 输出数组两端的元素  
    cout << Darray.back() << endl; // 输出最后的元素  
    cout << Darray.front() << endl; // 输出最开始的元素  
  
    // 擦除  
    Darray.pop_back(); // 删除数组最后的元素  
    Darray.erase(Darray.begin() + 2); // 删除特定的元素  
    Darray.erase(Darray.begin(), Darray.end() - 2); // 成段的擦除数组中的元素  
}  

 

运行结果

 

清空数组&数组元素互换&判断数组是否为空

程序示例

#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()  
{  
    // 插入  
    vector<int> Darray{ 1,2,3,4,5 };  
    Darray.push_back(6); // 在数组结尾插入新元素  
    Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素  
    int Array[] = { 7,8,9 };  
    Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));  
    // 在倒数第二个位置插入数组  
  
    // 输出数组两端的元素  
    cout << Darray.back() << endl; // 输出最后的元素  
    cout << Darray.front() << endl; // 输出最开始的元素  
  
    // 擦除  
    Darray.pop_back(); // 删除数组最后的元素  
    Darray.erase(Darray.begin() + 2); // 删除特定的元素  
    Darray.erase(Darray.begin(), Darray.end() - 2); // 成段的擦除数组中的元素  
  
    vector<int> Darray2 = { 10,9,8,7,6,5 };  
    Darray2.swap(Darray);  
  
    Darray.clear(); // 清空数组,注意不是全部置0  
    bool is_empty = Darray.empty(); // 如果数组为空,返回true,否则,返回false  
} 

​​​​​​​ 

运行结果

 

小练习

题目要求

定义一个 int 类型的 vector 动态数组,将以下元素:1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 插入到动态数组中。之后,使用 for 循环删除动态数组中的值为 3 的元素,并将结果输出出来。

代码示例

// 小作业.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。  
//  
  
#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()  
{  
    vector<int> varray{ 0 };  
    vector<int> SwapArray{ 0 };  
    int iarray[] = { 1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 };  
    varray.clear();  
    varray.insert(varray.begin(), iarray, iarray + sizeof(iarray) / sizeof(int));  
      
    vector<int>::iterator ArrayIterator;  
// 声明类一个迭代器,迭代器是vector类的成员模板变量,就相当于一个指针
    SwapArray.clear();  
    for (ArrayIterator = varray.begin(); ArrayIterator != varray.end(); ArrayIterator++)  
    {  
        if (*ArrayIterator != 3)  
        {  
            SwapArray.push_back(*ArrayIterator);  
        }  
    }  
    varray.swap(SwapArray);  
    for (ArrayIterator = varray.begin(); ArrayIterator != varray.end(); ArrayIterator++)  
    {  
        cout << *ArrayIterator << " ";  
    }  
    cout << endl;  
}  

 

切记:当你向数组内删除或插入元素时,数组中元素的索引也在变,因此当改变数组后,不可以在用原来的索引去索引相应的元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥胖胖是太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值