为了克服懒惰,每日一打卡监督自己,详细内容请去原文看
学习之code来源于:http://blog.csdn.net/w_linux/article/details/71600574
vector
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。
可以简单的认为,向量是一个能够存放任意类型的动态数组
//
1.pop_back()&push_back(elem)实例在容器最后移除和插入数据
//#include<iostream>
//#include<string.h>
//#include<vector>
//using namespace std;
//
//int main()
//{
// vector<int>obj; // 创建一个向量存储容器 int
// for(int i=0;i<10;i++) // push_back(elem) 在数组最后添加数据
// {
// obj.push_back(i);
// cout<<obj[i]<<",";
// }
// for(int i=0;i<5;i++)
// {
// obj.pop_back();
// }
// cout<<"\n"<<endl;
// for(int i=0;i<obj.size();i++) // size()容器中实际数据个数
// {
// cout<<obj[i]<<",";
// }
// return 0;
// }
//2.clear()清除容器中所有数据
//#include<string.h>
//#include<vector>
//#include<iostream>
//using namespace std;
//
//int main()
//{
// vector<int>obj;
// for(int i=0;i<10;i++) // push_back(elem)在数组最后添加数据
// {
// obj.push_back(i);
// cout<<obj[i]<<" ";
// }
// obj.clear(); // 清除容器中所有数据
// for(int i=0;i<obj.size();i++)
// {
// cout<<obj[i]<<endl;
// }
// return 0;
//}
3.排序
//#include<string.h>
//#include<vector>
//#include<iostream>
//#include<algorithm> // sort() 的头文件
//using namespace std;
//
//int main()
//{
// vector<int>obj;
//
// obj.push_back(1);
// obj.push_back(3);
// obj.push_back(0);
//
// sort(obj.begin(),obj.end()); // 从小到大
//
// cout<<"从小到大:"<<endl;
// for(int i=0;i<obj.size();i++)
// {
// cout<<obj[i]<<" ";
// }
// cout<<"\n"<<endl;
// cout<<"从大到小:"<<endl;
// reverse(obj.begin(),obj.end());
// for(int i=0;i<obj.size();i++)
// {
// cout<<obj[i]<<" ";
// }
// return 0;
// }
4.访问(直接数组访问&迭代器访问)
//#include<string.h>
//#include<vector>
//#include<iostream>
//using namespace std;
//
//int main()
//{
// vector<int>obj;
// for(int i=0;i<10;i++)
// {
// obj.push_back(i);
// }
// cout<<"直接利用数组:";
// for(int i=0;i<10;i++)
// {
// cout<<obj[i]<<" ";
// }
// cout<<endl;
// cout<<"利用迭代器:";
// vector<int>::iterator it; //声明一个迭代器访问vector容器,遍历或指向vector容器中的元素
// for(it=obj.begin();it!=obj.end();it++)
// {
// cout<<*it<<" ";
// }
// return 0;
//}
output:
直接利用数组:0 1 2 3 4 5 6 7 8 9
利用迭代器:0 1 2 3 4 5 6 7 8 9
5.二维数组两种定义方法(结果一样)
//#include<string.h>
//#include<vector>
//#include<iostream>
//using namespace std;
//
//int main()
//{
// int N=5,M=6;
//
// vector<vector<int> > obj(N);// 定义二维动态数组大小5行
// for(int i=0;i<obj.size();i++)//动态二维数组为5行6列,值全为0
// {
// obj[i].resize(M); // 重要!!!
// }
//
// for(int i=0;i<obj.size();i++) // 输出二维动态数组
// {
// for(int j=0;j<obj.size();j++)
// {
// cout<<obj[i][j]<<" ";
// }
// cout<<"\n";
// }
// return 0;
// }
5.二维数组两种定义方法(结果一样) 方法二
//#include<string.h>
//#include<vector>
//#include<iostream>
//#include<algorithm>
//using namespace std;
//
//int main()
//{
// int N=5,M=6;
// vector<vector<int> > obj(N,vector<int>(M)); // 定义二维动态数组5行6列
//
// for(int i=0;i<obj.size();i++)
// {
// for(int j=0;j<obj[i].size();j++)
// {
// cout<<obj[i][j]<<" ";
// }
// cout<<"\n";
// }
// return 0;
// }