std::vector的简单实验
2016-05-17 22:03
295 查看
std::vector<template class> 就是动态数组。
这里面有很多的方法。
比如:size(),capacity(),resize();reverse();pop_back();swap();
以及遍历操作。
![](https://img-blog.csdn.net/20160517220030035?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220049134?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220106239?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220200630?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220223989?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220256177?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220311583?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160517220332177?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
/*实验一
//定义std::vector<class T>变量
std::vector<int> myVec(6);
cout << myVec.capacity() << endl;//数组的容量
cout << myVec.size()<< endl;//数组中元素个数。
cout << "**************************" << endl;
//赋值操作
for (std::vector<int>::size_type i = 0; i != myVec.capacity();i++)
{
myVec[i] = i * 2;
}
//打印操作(一)
for (auto elem : myVec)
{
cout << elem << endl;
}
cout << "**************************" << endl;
//打印操作(二)
for (std::vector<int>::iterator iter = myVec.begin(); iter != myVec.end();++iter)
{
cout << *iter << endl;
}
//打印某一个位置的元素
cout << "**************************" << endl;
cout << myVec.at(0) << endl;
cout << myVec.at(1) << endl;
cout << myVec.at(2) << endl;
cout << myVec.at(3) << endl;
cout << myVec.at(4) << endl;
cout << myVec.at(5) << endl;
//获取第一个,最后一个的值
cout << "**************************" << endl;
cout << myVec.front() << endl;
cout << myVec.back() << endl;
*/
//实验二
std::vector<int> vec1 = {1,2,3,4,5,6};
cout << vec1.capacity() << endl;//数组的容量
cout << vec1.size() << endl;//数组中元素个数。
std::vector<int> vec2;
vec2.assign(3, 6); //设置3个6.
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
cout << vec2[0] << endl;
cout << vec2.at(1) << endl;
cout << vec2.at(2) << endl;
cout << "******************************" << endl;
vec2.reserve(4); //重新设置容量的同时,不进行赋值操作。
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
for each (int var in vec2)
{
cout << var << endl;
}
cout << "******************************" << endl;
////cout << vec2.at(3) << endl;
vec2.resize(5); //它是开辟空间的同时赋值为空
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
cout << "******************************" << endl;
for (auto i:vec2)
{
cout << i << endl;
}
vec2.assign(vec1.begin(), vec1.end()); //这是第二种赋值方式。
cout << "******************************" << endl;
for (auto i : vec2)
{
cout << i << endl;
}
这里面有很多的方法。
比如:size(),capacity(),resize();reverse();pop_back();swap();
以及遍历操作。
/*实验一
//定义std::vector<class T>变量
std::vector<int> myVec(6);
cout << myVec.capacity() << endl;//数组的容量
cout << myVec.size()<< endl;//数组中元素个数。
cout << "**************************" << endl;
//赋值操作
for (std::vector<int>::size_type i = 0; i != myVec.capacity();i++)
{
myVec[i] = i * 2;
}
//打印操作(一)
for (auto elem : myVec)
{
cout << elem << endl;
}
cout << "**************************" << endl;
//打印操作(二)
for (std::vector<int>::iterator iter = myVec.begin(); iter != myVec.end();++iter)
{
cout << *iter << endl;
}
//打印某一个位置的元素
cout << "**************************" << endl;
cout << myVec.at(0) << endl;
cout << myVec.at(1) << endl;
cout << myVec.at(2) << endl;
cout << myVec.at(3) << endl;
cout << myVec.at(4) << endl;
cout << myVec.at(5) << endl;
//获取第一个,最后一个的值
cout << "**************************" << endl;
cout << myVec.front() << endl;
cout << myVec.back() << endl;
*/
//实验二
std::vector<int> vec1 = {1,2,3,4,5,6};
cout << vec1.capacity() << endl;//数组的容量
cout << vec1.size() << endl;//数组中元素个数。
std::vector<int> vec2;
vec2.assign(3, 6); //设置3个6.
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
cout << vec2[0] << endl;
cout << vec2.at(1) << endl;
cout << vec2.at(2) << endl;
cout << "******************************" << endl;
vec2.reserve(4); //重新设置容量的同时,不进行赋值操作。
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
for each (int var in vec2)
{
cout << var << endl;
}
cout << "******************************" << endl;
////cout << vec2.at(3) << endl;
vec2.resize(5); //它是开辟空间的同时赋值为空
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
cout << "******************************" << endl;
for (auto i:vec2)
{
cout << i << endl;
}
vec2.assign(vec1.begin(), vec1.end()); //这是第二种赋值方式。
cout << "******************************" << endl;
for (auto i : vec2)
{
cout << i << endl;
}
相关文章推荐
- 练习010
- 理解Python中的with…as…语法
- opencv:使用高斯混合模型(GMM)源码对视频进行背景差分法
- objective-c中的self和super关键字
- 一起talk C栗子吧(第一百五十一回:C语言实例--socket通信地址)
- JDK1.8 源码 中的设计模式
- Spark读取HDFS文件
- 小米手机真机调试的设置-机型:HM-1SC
- 关于购物车计算金钱的问题
- 动态规划-3015-十进制转二进制
- 喵帕斯喵喵
- unity中虚拟摇杆的实现
- 数据库进阶系列之二:细说数据库范式
- 数据库进阶系列之一:漫谈数据库索引
- UVA_10002_Center of Masses
- TCP核心概念-慢启动,ssthresh,拥塞避免,公平性的真实含义
- Word2010 Error:The name in the end tag of the element must match the element type in the start tag.
- linux 命令与权限
- ubuntu nfs安装
- nodejs异步编程