C++STL中的向量vector
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef vector<int> vt;
int main()
{
int i;
vt v1(10); //定義向量10個元素,注意每個元素初始化為了0
for (i = 0; i < 10; i++)
cout << v1[i] << " ";
cout << endl;
//---輸出0 0 0 0 0 0 0 0 0 0
int a[9] = { 1, 3, 2, 4, 6, 7, 8, 3,6 };
vt v2(a, a + 8);//將數組a的第一個元素到第8個元素作為v2初始化值
for (vector<int>::iterator it = v2.begin(); it != v2.end(); it++)
cout << *it << " ";
cout << endl;
//使用迭代器iterator遍歷的方法輸出向量元素,輸出為1 3 2 4 6 7 8 3
//插入函數insert(),能在向量中指定位置插入一個元素
//--------------------------------------------------------------------------------------
//插入前結果 1 3 2 4 6 7 8 3
v2.insert(v2.begin(), 4);//在v2開頭(下標為0的元素)前面插入數據4
//插入后結果 4 1 3 2 4 6 7 8 3
v2.insert(v2.begin() + 2, 5);//把數據5插入到下標為2處
//插入后結果 4 1 5 3 2 4 6 7 8 3
v2.insert(v2.end(), 18);//在v2最后插入數據18
//插入后結果 4 1 5 3 2 4 6 7 8 3 18
//---------------------------------------------------------------------------------------
//刪除函數erase(),能在向量中指定位置插入幾個元素
vt v3(a, a + 8);
v3.erase(v3.begin()+2);//刪除下標為2的元素
for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
cout << *it << " ";
cout << endl;
//----輸出結果1 3 4 6 7 8 3
v3.erase(v3.begin() + 1, v3.begin() +3);//左閉右開刪除下標為1(包括1)到下標為3(不保存3)之間元素
for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
cout << *it << " ";
cout << endl;
//----輸出結果1 6 7 8 3
v3.erase(v3.end()-1);//刪除末尾元素,由于右開特性,*(v3.end()-1)才是左后一個元素
for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
cout << *it << " ";
cout << endl;
//----輸出結果1 6 7 8
//---調用clear()函數清空向量
v3.clear();
cout << v3.size() << endl; //輸出為0
//------------------------------------------------------------------------------------------
//--sort()函數對向量進行(默認)升序排序包含于頭文件#include<algorithm>中
vt v4(a, a + 9);
sort(v4.begin(), v4.end());
for (i = 0; i < 9; i++)
cout << v4[i] << " ";
cout << endl;
//輸出1 2 3 3 4 6 6 7 8
}
總結
以上是生活随笔為你收集整理的C++STL中的向量vector的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速查找 js 插件
- 下一篇: 【python系统学习12】函数