赞
踩
一、vector 的初始化:可以有4种方式:
(1)vector<int> a(10); //定义了10个整型元素的向量,但没有给出初值
(2)vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1
(3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
(5)vector<vector<int>> a(10, vector<int>(10));//嵌套初始化
二、vector对象的几个重要操作:
(1)将b的0~2个元素构成的向量赋给a
vector<int> b = { 1, 2, 3, 4, 5, 6 };
vector<int> a;
a.assign(b.begin(), b.begin() + 3);
a 为: {1,2,3}
(2)a有5个元素,且每个元素为1
vector<int> a;
a.assign(5, 1);
a 为:{1,1,1,1,1}
(3)返回a的最后一个元素
vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.back()<<endl;
输出为:6
(4)返回a的第一个元素
vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.front()<< endl;
输出为:1
(5)返回a的第i个元素
vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a[3]<< endl;
输出为:4
(6)清空a中的元素
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.clear();
cout << a.size() << endl;
输出为:0
(7)判断a是否为空,空则返回1,不空则返回0
vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.empty() << endl;
a.clear();
cout << a.empty() << endl;
输出为:0
输出为:1
(8)删除a向量的最后一个元素
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.pop_back();
a为:{1,2,3,4,5}
(9)删除a中第1个(从第0个算起)到第2个元素
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.erase(a.begin() + 1, a.begin() + 3);
a为:{1,4,5,6}
(10)在a的最后一个向量后插入一个元素,其值为7
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.push_back(7);
a为:{1,2,3,4,5,6,7}
(11)在a的第1个元素(从第0个算起)的位置插入数值7
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.insert(a.begin() + 1, 7);
a为:{1,7,2,3,4,5,6}
(12)在a的第1个元素(从第0个算起)的位置插入3个数,其值都为7
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.insert(a.begin() + 1, 3, 7);
a为:{1,7,7,7,2,3,4,5,6}
(13)b为数组,在a的第1个元素(从第0个算起)的位置插入b的第3
个元素到第5个元素(不包括b+6)
int b[] = { 7, 8, 9, 10, 11, 12, 13 };
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.insert(a.begin() + 1, b + 3, b + 6);
a为:{1,10,11,12,2,3,4,5,6}
(14)返回a中元素的个数;
vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.size() << endl;
输出为:6
(15)返回a在内存中总共可以容纳的元素个数
vector<int> a(10);
cout << a.capacity() << endl;
输出为:10
(16)将a的元素个数调至10个,多则删,少则补
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.resize(10);
a为:{1,2,3,4,5,6,0,0,0,0}
(17)将a的现有元素个数调至10个,多则删,少则补,其值为2
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.resize(10, 2);
a为:{1,2,3,4,5,6,2,2,2,2}
(18)将a的容量(capacity)扩充至10
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.reserve(10);
cout << a.capacity() << endl;
输出为:10
(19)b为向量,将a中的元素和b中的元素进行整体性交换
vector<int> b = { 7, 8, 9, 10, 11, 12 };
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.swap(b);
a为:{ 7, 8, 9, 10, 11, 12 }
b为:{ 1, 2, 3, 4, 5, 6 }
(20)a==b; //b为向量,向量的比较操作还有!=,>=,<=,>,<
(21)顺序取反
reverse(a.begin(),a.end());
(22)求和
#include<numeric>
double sum = std::accumulate(a.begin(), a.end(),0);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。