// Note:Your choice is C++ IDE
#include <iostream>
#include "vector"
using namespace std;
//vector 之所以被认为是一个容器,是因为它是能够像容器一样存放各种类型的对象
//简单的说 vector是一个能够存放任意类型的动态数组 能够增加和压缩数据
//vector
void printfArray(vector<int> &v)
{
int size = v.size();
for(int i=0; i<size; i++)
{
cout<<v[i]<<endl;
}
}
void main1()
{
vector<int> v1(5); //定义一个int类型容器 大小为5
int i =0;
for(i=0; i<5; i++)
{
v1[i]= i+1;
}
vector<int> v2(10);
v2 = v1;
for (i=0; i<10; i++)
{
cout<<v2[i]<<endl;//如果不手动初始化的话就会自动初始化
}
cout<<endl;
v2.resize(0);
cout<<v2.size()<<endl<<"aa"<<endl;
vector<int> v3(10);
v3.push_back(3);
v3.push_back(4);
v3.push_back(5);
printfArray(v3);
}
void main2()
{
vector<int> v3(10);//全部初始化
v3.push_back(3);//从后面插入数据 并不会改变原来的值 只是从后面添加
v3.push_back(4);
v3.push_back(5);//向后
v3.pop_back();//弹出最后一个元素
v3.pop_back();
printfArray(v3);
}
struct teacher
{
int age;
char name[10];//结构体中的数组初始化只能用拷贝完成
};
void main3()
{
struct teacher t1,t2,t3;
t1.age = 11;
t2.age = 22;
t3.age = 33;
vector<teacher> v3(0);
v3.push_back(t1);
v3.push_back(t2);
v3.push_back(t3);
for (int i=0; i<3; i++)
{
cout<<v3[i].age<<endl;
}
}
void main4()
{
struct teacher t1,t2,t3;
t1.age = 11;
t2.age = 22;
t3.age = 33;
vector<teacher *> v3(0);
v3.push_back(&t1);
v3.push_back(&t2);
v3.push_back(&t3);
for (int i=0; i<3; i++)
{
teacher *tmp = v3[i];
cout<<tmp->age<<endl;
}
}
//这个必须掌握
void main()
{
vector<int> v1(5); //定义一个int类型容器 大小为5
cout<<v1.size()<<endl;//5
int i =0;
for(i=0; i<5; i++)
{
v1[i]= i+1;
}
vector<int> ::iterator it;//声明一个迭代器
for(it=v1.begin(); it!=v1.end(); it++) //将迭代器指向v1
{
cout<<*it<<endl;//12345
}
v1.pop_back();//弹出最后一个元素 5
for(it=v1.begin(); it!=v1.end(); it++)
{
cout<<*it<<endl;//1234
}
it = v1.begin();
v1.erase(it+0);//删除第0个元素
v1.erase(it+1,it+3);//从第零个元素开始,删除[1,3)半开半闭空间
for(it=v1.begin(); it!=v1.end(); it++)
{
cout<<*it<<endl;//2
}
it = v1.begin();
v1.insert(it+1,3);//在首元素的下一个位置插入3
for(it=v1.begin(); it!=v1.end(); it++)
{
cout<<*it<<endl;
}
it = v1.begin();
cout<<v1.max_size()<<endl;
v1.clear();//清空
for(it=v1.begin(); it!=v1.end(); it++)
{
cout<<*it<<endl;
}
cout<<v1.size()<<endl;//大小 是未被清空的
}