容器

发布时间 2023-05-26 10:22:34作者: 软件拓荒人
//#include<iostream>
//using namespace std;
//#include<vector>//vector需要用的头文件
//#include<algorithm>//用STL算法需要加的头文件
////vector 容器存放内置数据类型
//
//void myPrint(int val)
//{
//    cout<<val<<endl;
//}
//
//
//
//void test01()
//{
//    //创建了一个vector容器  看作是数组
//    vector<int>v;
//    
//    //向容器中插入数据  函数pish_back())
//    v.push_back(10);//尾插法
//    v.push_back(20);
//    v.push_back(30);
//    v.push_back(40);
//    
//    //通过迭代器访问容器中的数据
////    vector<int>::iterator itBegin=v.begin();//起始迭代器,指向容器第一个元素
////    vector<int>::iterator itEnd=v.end();    //结束迭代器
//    
//    //第一种遍历方式
////    while(itBegin!=itEnd)
////    {
////        cout<<*itBegin<<endl;
////        itBegin++;
////    }
//    
////    //第二种遍历方式
////    for(vector<int>::iterator it=v.begin();it!=v.end();it++)
////    {
////        cout<<*it<<endl;
////    }
//
//    //第三种遍历方式  利用STL提供的遍历算法
//    for_each(v.begin(),v.end(),myPrint);//第三个参数直接传个函数名就行  是回调函数
//    
//}
//int main()
//{
//    test01();
//    return 0;
//}


//#include<iostream>
//using namespace std;
//#include<vector>
//#include<string>
////vector容器中存放自定义类型
//class Person
//{
//public:
//    Person(string name,int age)
//    {
//        this->m_Name=name;
//        this->m_Age=age;
//    }
//    string m_Name;
//    int m_Age;
//};
//
//void test01()
//{
//    vector<Person>v;
//    Person p1("aaa",10);
//    Person p2("bbb",20);
//    Person p3("ccc",30);
//    Person p4("ddd",40);
//    Person p5("eee",50);
//    
//    //向容器中添加数据
//        v.push_back(p1);
//        v.push_back(p2);
//        v.push_back(p3);
//        v.push_back(p4);
//        v.push_back(p5);
//    
//    //遍历容器中的数据
//    for(vector<Person>::iterator it=v.begin();it!=v.end();it++)
//    {
//        cout<<"姓名:"<<(*it).m_Name<<"年龄:"<<(*it).m_Age<<endl;//尖括号里是什么类型,*it就是什么类型
//        //cout<<"姓名:"<<it->m_Name<<"年龄:"<<it->m_Age<<endl;  理解了it是指针后也可用箭头来表示它
//    }
//}
//
////存放自定义类型的指针
//void test02()
//{
//    vector<Person*>v;
//    Person p1("aaa",10);
//    Person p2("bbb",20);
//    Person p3("ccc",30);
//    Person p4("ddd",40);
//    Person p5("eee",50);
//    
//    //向容器中添加数据
//    v.push_back(&p1);
//    v.push_back(&p2);
//    v.push_back(&p3);
//    v.push_back(&p4);
//    v.push_back(&p5);
//    
//        for(vector<Person*>::iterator it=v.begin();it!=v.end();it++)
//        {
//            cout<<"姓名:"<<(*it)->m_Name<<"年龄:"<<(*it)->m_Age<<endl;
//        }
//}
//
//
//int main()
//{
//    
//    //test01();
//    test02();
//    return 0;
//}


#include<iostream>
using namespace std;
#include<vector>
#include<string>


//容器嵌套容器
void test01()
{
    vector<vector<int>>v;
    //创建小容器
    vector<int>v1;
    vector<int>v2;
    vector<int>v3;
    vector<int>v4;
    
    //向小容器中添加数据
    for(int i=0;i<4;i++)
    {
        v1.push_back(i+1);
        v2.push_back(i+2);
        v3.push_back(i+3);
        v4.push_back(i+4);
    }
    
    //将小容器插入到大的容器中
    v.push_back(v1);
    v.push_back(v2);
    v.push_back(v3);
    v.push_back(v4);
    
    //通过大容器,把所有数据都遍历一遍
    for(vector<vector<int>>::iterator it=v.begin();it!=v.end();it++)
    {
        //(*it)-------容器vector<int>
        for(vector<int>::iterator vit=(*it).begin();vit!=(*it).end();vit++)
        {
            cout<<*(vit)<<" ";
        }
        cout<<endl;
    }
}




int main()
{
    
    test01();
    return 0;
}