欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vector动态数组的基本操作

程序员文章站 2022-03-01 23:18:45
...

目录

 

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));  
    // 在倒数第二个位置插入数组  
} 

 

 

运行结果

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));  
    // 在倒数第二个位置插入数组  
    cout << Darray.back() << endl; // 输出最后的元素  
    cout << Darray.front() << endl; // 输出最开始的元素  
}  

 

运行结果

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));  
    // 在倒数第二个位置插入数组  
  
    // 输出数组两端的元素  
    cout << Darray.back() << endl; // 输出最后的元素  
    cout << Darray.front() << endl; // 输出最开始的元素  
  
    // 擦除  
    Darray.pop_back(); // 删除数组最后的元素  
    Darray.erase(Darray.begin() + 2); // 删除特定的元素  
    Darray.erase(Darray.begin(), Darray.end() - 2); // 成段的擦除数组中的元素  
}  

 

运行结果

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));  
    // 在倒数第二个位置插入数组  
  
    // 输出数组两端的元素  
    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  
} 

​​​​​​​ 

运行结果

vector动态数组的基本操作

 

小练习

题目要求

定义一个 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;  
}  

 

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

相关标签: C++拓展知识 c++