C++数据结构类型以及实现类

1、array数组

#include<iostream>
#include<array>
using namespace std;

int main()
{
    array<int, 10> marray;//使用array方法

    for (int i = 0; i < 10; i++)//向marray赋值
    {
        marray[i] = i;
    }

    cout << "遍历数据" << endl;
    for (auto it = marray.begin(); it != marray.end(); it++)
        cout << *it << '\t';

    cout << endl;
    cout << "size of array is " << marray.size() << endl;

    cout << "第四个元素为:" << marray[3] << endl;

    return 0;
}

2、queue队列

#include<iostream>
#include<array>
#include<queue>            //头文件
using namespace std;

int main()
{
    queue<int> mqueue;    //队列初始化
    for (int i = 0; i < 10; i++)
    {
        mqueue.push(i);    //向其中添加数据
    }

    while (!mqueue.empty())
    {
        cout << mqueue.front() << endl;//获取头部数据
        mqueue.pop();    //弹出头部数据
    }
    return 0;
}

3、stack栈

#include<iostream>
#include<stack>
using namespace std;

int main()
{
    stack<int> mstack;

    for (int i = 0; i < 10; i++)
        mstack.push(i);

    while (!mstack.empty())
    {
        cout << mstack.top() << endl;//取栈顶元素
        mstack.pop();//弹出栈顶元素
    }
    return 0;
}

4、list链表

#include<iostream>
#include<list>
using namespace std;

int main()
{
    int num[] = {
        1,2,3,4,5
    };
    list<int> mlist(num, num + sizeof(num) / sizeof(int));

    for (auto it = mlist.begin(); it != mlist.end(); it++)
    {
        cout << *it << " ";
    }

    auto it = mlist.begin();
    for (int i = 0; i < 5; i++)
    {
        mlist.insert(it, i);
    }

    cout << endl;
    for (auto it = mlist.begin(); it != mlist.end(); it++)
        cout << *it << " ";

    return 0;
}

5、map

map是一个容器,有一一对应的特点。

#include<iostream>
#include<map>
using namespace std;

int main()
{
    map<char, int> mmap;//初始化

    mmap['a'] = 1;

    mmap.insert(pair<char, int>('b',2));//插入

    mmap.erase('a');//删除

    auto it = mmap.find('b');//查找
    cout << it->first << "    " << it->second << endl;

    return 0;
}

6、set集合

set集合最大的特点是里面的元素按序排列不重复,图片演示集合初始化、插入、删除、查找等操作。

#include<iostream>
#include<set>
using namespace std;

int main()
{
    int num[] = {
        1,2,3,4,5
    };
    set<int> myset(num, num + sizeof(num) / sizeof(int));

    myset.insert(6);//插入

    myset.erase(2);//删除

    auto it = myset.find(3);//查找

    cout << *it << endl;

    return 0;
}

7、vector向量

vector向量和array不同,它可以根据数据的大小而进行自动调整,图片仅展示初始化、插入、删除等操作。

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

int main()
{
    vector<int> myvector;

    for (int i = 0; i < 10; i++)
    {
        myvector.push_back(i);//压入
    }

    for (auto it = myvector.begin(); it != myvector.end(); it++)//遍历
    {
        cout << *it << endl;
    }

    return 0;
}

 

posted @ 2021-11-08 22:08  又一岁荣枯  阅读(72)  评论(0编辑  收藏  举报