特点:当成数组使用
1.pop_back()&push_back()
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>obj;
for(int i=0;i<10;i++) //所有i都是临时变量,之后需要的话还要重新定义
// obj[i]=i; 这种赋值方式不行————【待类比】
{
obj.push_back(i);
cout<<obj[i]<<" ";
} //由忘加{}可知int i的有效范围
cout<<"\n";
//cout<<'\n'; 事实证明,cout ""与''内部都是字符时,暂时没什么区别
for(int i=0;i<5;i++)
obj.pop_back();
for(int i=0;i<obj.size();i++)
cout<<obj[i]<<' ';
return 0;
}
2.clear()
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector <int>obj;
for(int i=0;i<10;i++)
{
obj.push_back(i);
cout<<obj[i]<<","; //""是内容,''是字符,不过\与%在""可以转义,在''种仍然是一种字符
}
cout<<endl;
obj.clear();
for(int i=0;i<obj.size();i++)
cout<<obj[i]<<','<<endl;
return 0;
}
3.排序
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int>obj;
obj.push_back(2);
obj.push_back(3);
obj.push_back(1);
//obj.push_back(); 这种写法不被允许
for(int i=0;i<obj.size();i++)
cout<<obj[i]<<",";
cout<<endl;
sort(obj.begin(),obj.end()); //sort与reverse的函数声明是指针?均属于algorithm
for(int i=0;i<obj.size();i++)
cout<<obj[i]<<' ';
cout<<endl;
reverse(obj.begin(),obj.end());
for(int i=0;i<obj.size();i++)
cout<<obj[i]<<',';
return 0;
}
4.两种访问vector
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>obj;
for(int i=0;i<10;i++)
obj.push_back(i);
//方式一
for(int i=0;i<10;i++)
cout<<obj[i]<<' ';
cout<<'\n';
//方式二 迭代器访问vector容器
vector<int>::iterator it; //理解为地址
for(it=obj.begin();it!=obj.end();it++)
cout<<*it<<' ';
return 0;
}
5(1).动态二维数组
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int N=5,M=6;
//vector<vector<int>obj>obj[N] 错误
//vector<vector<int> >obj[N] 错误
vector<vector<int> >obj(N);
for(int i=0;i<obj.size();i++)
{
//for(int j=0;j<obj[i].size();j++)
obj[i].resize(M); //把每一行扩充为M列
}
for(int i=0;i<obj.size();i++)
{
for(int j=0;j<obj[i].size();j++)
//cout<<obj[i].
cout<<obj[i][j]<<' ';
cout<<endl;
}
//只是循环时判断改为行列的大小,输出访问时可以数组ij or 迭代器
return 0;
}
小结
1.
动态二维数组:obj.功能() 对于行
obj[i].功能() 对于列
2.
访问数组:迭代器指针,数组
5(2)
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int M=6,N=5;
vector<vector<int> >obj(N,vector<int>(M)); //注意此处应加' ';
for(int i=0;i<obj.size();i++)
{
for(int j=0;j<obj[i].size();j++)
{
cout<<obj[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
6.基础功能(暂无对二维数组的功能)
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>obj;
cout<<obj.size()<<endl;
for(int i=0;i<5;i++)
obj.push_back(i);
cout<<"extended vector size="<<obj.size()<<endl;
for(int i=0;i<5;i++)
cout<<"obj["<<i<<"]="<<obj[i]<<' ' ;
cout<<endl;
vector<int>::iterator it;
for(it=obj.begin();it!=obj.end();it++)
cout<<*it<<' ';
return 0;
}