栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

vector容器的相关操作

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vector容器的相关操作

#include
#include
//#include
using namespace std;

//输出容器中的数据
void printVector(vector v) {
for (vector::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
//相当于数组
/int len = v.size();
for (int i = 0; i < len; i++) {
cout << v[i]<<" ";
}
cout << endl;
/

 

}

//用swap可以收缩空间
void test01() {
vector v;
for (int i = 0; i < 1000; i++) {
v.push_back(i);
}
cout << “v的容量为:” << v.capacity() << endl; //容器占用的内存空间
cout << “v的大小为:” << v.size() << endl; //容器实际数据的个数

vector(v).swap(v);//相当于用v目前所用个数来初始化一个新容器用v目前所用个数

cout << "v的容量为:" << v.capacity() << endl;  
cout << "v的大小为:" << v.size() << endl; 

}

int main() {
vector v1; //无参构造
for (int i = 0; i < 10; i++) {
v1.push_back(i);
}
int i = v1.front();
cout << “第一个元素为:” < int j = v1.back();
cout << “最后一个元素为:” << j << endl;

printVector(v1);
vector v2(5,10);  //构造函数将n个elem拷贝给本身

//sort(v2.begin(), v2.end());//排序v2从小到大

//reverse(v2.begin(), v2.end());  //将v2元素倒置

 vector::iterator it = find(v1.begin(), v1.end(), 10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置
 if (it != v1.end())
	 cout << *it << endl;
 else
	 cout << "can not find" << endl;

 v2.insert(v2.begin(), 20);//插入操作,第一个参数是迭代器
 v2.insert(v2.begin(), 3, 5);//v2头插入了3个5
 v2.erase(v2.begin());//删除操作
 //v2.erase(v2.begin(),v2.end())//清空
 //v2.clear();//清空
 printVector(v2);

v1.swap(v2);//v1和v2互换

vector v3(v1.begin(), v1.end());//将v[begin(),end())区间中的元素拷贝给本身

vector v4(v3); //拷贝构造函数

vector v5;

v5 = v3;//重载 operater = 

vector v6;
v6.assign(v1.begin(), v1.end());//assign赋值
v6.assign(10, 10);//另一种使用方式

int a[6] = { 1,2,3,4,5,6 };
vector b(a, a + 6);  // [)
for (int i = 0; i <= b.size() - 1; i++)
	cout << b[i] << " ";
cout << endl;

int c = v2[1];
cout< 

}

//vector a;
//for (int i = 0; i < 10; i++)
// a[i] = i;
//这种做法以及类似的做法都是错误的。刚开始我也犯过这种错误,后来发现,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象

输出结果
第一个元素为:0
最后一个元素为:9
0 1 2 3 4 5 6 7 8 9
can not find
5 5 20 10 10 10 10 10
1 2 3 4 5 6
9
0
1
v1容器不为空
5 5 20 10 10 10 10 10

10 10 10 10 10 10 10 10 10 10
v的容量为:1066
v的大小为:1000
v的容量为:1000
v的大小为:1000

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号