#include<vector>//向量--->动态数组 不受内存限定#include<iostream>
using namespace std;
class MM
{
public:MM(){
}MM(string name,int age):name(name),age(age){
}
friend ostream& operator<<(ostream& out, MM object){
out << object.name <<"\t"<< object.age;return out;}
protected:
string name;int age;};voidprint(vector<int>& array)//修改值可以传引用//容器相当于一个变量,可以充当函数参数{
for(int i =0; i < array.size(); i++)//所有容器都有万金油{
cout << array[i]<<"\t";}}
class A
{
public:
protected:};
class B
{
public:
vector<A> object;//数组变量 函数参数,类中数据成员};intmain(){
//1.加上vector头文件//2.学会创建对象 主要
vector<int>intArratEmpty;//无参的构造函数,默认缺省//3.没确定长度,只能通过成员函数去操作for(int i =0; i <3; i++){
//尾插法
intArratEmpty.push_back(i);//模板类创建对象 调用成员函数}//4.直接使用数组的方式遍历动态数组for(int i =0; i <3; i++){
cout << intArratEmpty[i]<<"\t";}
cout << endl;//5.在确定长度的情况下,可以直接使用下标法使用
vector<string>strArray(3);//带参的构造函数for(int i =0; i <3; i++){
strArray[i]="str";}//6.超过的长度不能直接使用下标法//strArray[3]="love"; out of range
strArray.push_back("love");//strArray[3]
cout << endl;for(int i =0; i <4; i++){
cout << strArray[i]<<"\t";}
cout << endl;//7.操作自定义类型//放一个MM类型进去 mm[i] 就是MM类型 不能直接打印 剥洋葱 运算符重载
vector<MM>mm(3);
mm[0]=MM("张三",15);
mm[1]=MM("baby",15);
mm.push_back(MM("yykk",18));
mm.