#include "iostream"
#include "vector"
using namespace std;
class AA
{
public:
int m_bh;//编号
string m_name;//姓名
AA()
{
cout<<"默认构造函数AA().\n";
}
AA(const int &bh,const string&name):m_bh(bh),m_name(name)
{
cout<<"构造函数,name="<<m_name<<"。\n";
}
AA(const AA& g):m_bh(g.m_bh),m_name(g.m_name)
{
cout<<"拷贝构造函数,name="<<m_name<<"。\n";
}
~AA(){cout<<"析构函数。\n";}
};
int main(){
//1)创建一个空的vector容器
vector<int> v1;
cout<<"v1.capacity()="<<v1.capacity()<<", v1.size()="<<v1.size()<<endl;
//2)创建vector容器,元素个数为n(容量和实际大小都是n)
vector<int> v2(8);
cout<<"v2.capacity()="<<v2.capacity()<<", v2.size()="<<v2.size()<<endl;
//7)使用统一初始化列表创建容器。
vector<int>v3({1,5,2,4,3});
for (int ii = 0; ii < v3.size(); ++ii) {
cout<<v3[ii]<<" ";
}
cout<<endl;
v3.data()[0]=8;//数组表示法
v3.data()[1]=7;
*(v3.data()+2)=5;//
*(v3.data()+3)=5;
for (int ii = 0; ii < v3.size(); ++ii) {
cout<<v3[ii]<<" ";
}
cout<<endl;
int a;
vector<int> v;
a=1;v.push_back(a);
a=2;v.push_back(a);
a=3;v.push_back(a);
for (int ii = 0; ii < v.size(); ++ii) {
cout<<v[ii]<<" ";
}
cout<<endl;
vector<AA> n;
AA aa(18,"西施");
//n.push_back(aa);
//n.emplace_back(aa);
n.emplace_back(18,"西施");//在容器的尾部追加一个元素,...用于构造元素。c++
cout<<"bh="<<n[0].m_bh<<",name="<<n[0].m_name<< endl;
vector<vector<int>> v4;
vector<int> v5;
v5={1,2,3,4,5};//用
v4.push_back(v5);
v5={11,12,13,14,15,16,17};
v4.push_back(v5);
v5={21,22,23};
v4.push_back(v5);
for (int ii=0;ii<v4.size();ii++) {
for (int jj = 0; jj < v4[ii].size() ;jj++) {
cout<<v4[ii][jj]<<" ";//像二维数组一样使用容器、
cout<<endl;
}
}
}
输出:
v1.capacity()=0, v1.size()=0
v2.capacity()=8, v2.size()=8
1 5 2 4 3
8 7 5 5 3
1 2 3
构造函数,name=西施。
构造函数,name=西施。
bh=18,name=西施
1
2
3
4
5
11
12
13
14
15
16
17
21
22
23
析构函数。
析构函数。
发表回复