哈希表-列表-栈-队列

发布于 6 天前  11 次阅读


哈希表-列表-栈-队列

基础操作备忘

hello算法

#include <unordered_map>
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>

int main(){
    /* 初始化哈希表 */
    unordered_map<int, string> map;

    /* 添加操作 */
    map[12836] = "小哈";
    map[15937] = "小啰";
    map[16750] = "小算";
    map[13276] = "小法";
    map[10583] = "小鸭";

    /* 删除操作 */
    map.erase(10583);
    cout<<map[12836]/* 查询操作 */<<endl;

    /*容器/列表*/
    vector<int> nums = { 1, 3, 2, 5, 4 };

    /* 清空列表 */
    nums.clear();

    /* 在尾部添加元素 */
    nums.push_back(1);
    nums.push_back(3);
    nums.push_back(2);
    nums.push_back(5);
    nums.push_back(4);

    /* 在中间插入元素 */
    nums.insert(nums.begin() + 3, 6);  // 在索引 3 处插入数字 6

    /* 删除元素 */
    nums.erase(nums.begin() + 3);      // 删除索引 3 处的元素

    /* 拼接两个列表 */
    vector<int> nums1 = { 6, 8, 7, 10, 9 };

    /*将列表 nums1 拼接到 nums 之后*/
    nums.insert(nums.end(), nums1.begin(), nums1.end());

    sort(nums.begin(), nums.end());  // 排序后,列表元素从小到大排列

    int count = 0;
    for (int num : nums) {
        count += num;
        cout<<num<<"\n";
    }

    /* 初始化栈 */
    stack<int> stack;

    /* 元素入栈 */
    stack.push(1);
    stack.push(3);
    stack.push(2);
    stack.push(5);
    stack.push(4);

    /* 判断是否为空 */
    if (!stack.empty()){
        int sizeTmp=stack.size();/* 获取栈的长度 */
        for (int i = 0; i < sizeTmp; ++i) {
            /* 访问栈顶元素 */
            cout<<stack.top()<<"\n";
            /* 元素出栈 */
            stack.pop();// 无返回值
        }
    }

    /* 初始化队列 */
    queue<int> queue;

    /* 元素入队 */
    queue.push(1);
    queue.push(3);
    queue.push(2);
    queue.push(5);
    queue.push(4);

    /* 判断是否为空 */
    if (!queue.empty()){
        int queueTmp=queue.size();/* 获取队列的长度 */
        for (int i = 0; i < queueTmp; ++i) {
            /* 访问队列顶元素 */
            cout<<queue.front()<<"\n";
            /* 元素出队 */
            queue.pop();// 无返回值
        }
    }

    /* 初始化双向队列 */
    deque<int> deque;

    /* 元素入队 */
    deque.push_back(2);   // 添加至队尾
    deque.push_back(5);
    deque.push_back(4);
    deque.push_front(3);  // 添加至队首
    deque.push_front(1);

    /* 判断双向队列是否为空 */
    if(!deque.empty()){
        /* 访问元素 */
        cout<<deque.front()<<"\n";  // 队首元素出队
        cout<<deque.back()<<"\n";// 队尾元素出队
        /* 元素出队 */
        deque.pop_front();  // 队首元素出队
        deque.pop_back();   // 队尾元素出队
        /* 获取双向队列的长度 */
        cout<<deque.size()<<"\n";
    }
}
QQ:2219349024
最后更新于 2025-05-22