当前位置: 首页 > article >正文

C++ 数据结构详解

目录

C++ 数据结构详解

引言

1. 数组 (Array)

示例代码

2. 向量 (Vector)

示例代码

3. 链表 (List)

示例代码

4. 栈 (Stack)

示例代码

5. 队列 (Queue)

示例代码

6. 集合 (Set)

示例代码

7. 映射 (Map)

示例代码


C++ 数据结构详解

引言

数据结构是计算机科学中的一个重要概念,它决定了数据的组织和存储方式,进而影响到算法的效率和程序的性能。C++ 提供了丰富的数据结构和容器类,使得开发者可以高效地管理和操作数据。本文将详细介绍几种常见的 C++ 数据结构,并通过具体的例子来展示它们的使用方法。

1. 数组 (Array)

数组是最基本的数据结构之一,用于存储固定数量的相同类型的数据。

示例代码
#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    std::cout << "Array elements: ";
    for (int i = 0; i < 5; ++i) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
2. 向量 (Vector)

向量是动态数组,可以自动调整大小。C++ 标准库提供了 std::vector 类。

示例代码
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    std::cout << "Vector elements: ";
    for (int i = 0; i < vec.size(); ++i) {
        std::cout << vec[i] << " ";
    }
    std::cout << std::endl;

    // 添加元素
    vec.push_back(6);
    std::cout << "After adding an element: ";
    for (int i = 0; i < vec.size(); ++i) {
        std::cout << vec[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
3. 链表 (List)

链表是由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。C++ 标准库提供了 std::list 类。

示例代码
#include <iostream>
#include <list>

int main() {
    std::list<int> lst = {1, 2, 3, 4, 5};

    std::cout << "List elements: ";
    for (int val : lst) {
        std::cout << val << " ";
    }
    std::cout << std::endl;

    // 添加元素
    lst.push_back(6);
    std::cout << "After adding an element: ";
    for (int val : lst) {
        std::cout << val << " ";
    }
    std::cout << std::endl;

    return 0;
}
4. 栈 (Stack)

栈是一种后进先出(LIFO)的数据结构。C++ 标准库提供了 std::stack 类。

示例代码
#include <iostream>
#include <stack>

int main() {
    std::stack<int> stk;

    // 添加元素
    stk.push(1);
    stk.push(2);
    stk.push(3);

    std::cout << "Top element: " << stk.top() << std::endl;

    // 移除元素
    stk.pop();
    std::cout << "Top element after pop: " << stk.top() << std::endl;

    return 0;
}
5. 队列 (Queue)

队列是一种先进先出(FIFO)的数据结构。C++ 标准库提供了 std::queue 类。

示例代码
#include <iostream>
#include <queue>

int main() {
    std::queue<int> que;

    // 添加元素
    que.push(1);
    que.push(2);
    que.push(3);

    std::cout << "Front element: " << que.front() << std::endl;

    // 移除元素
    que.pop();
    std::cout << "Front element after pop: " << que.front() << std::endl;

    return 0;
}
6. 集合 (Set)

集合是一种不允许重复元素的数据结构。C++ 标准库提供了 std::set 类。

示例代码
#include <iostream>
#include <set>

int main() {
    std::set<int> s;

    // 添加元素
    s.insert(3);
    s.insert(1);
    s.insert(2);

    std::cout << "Set elements: ";
    for (int val : s) {
        std::cout << val << " ";
    }
    std::cout << std::endl;

    return 0;
}
7. 映射 (Map)

映射是一种键值对的数据结构,每个键对应一个值。C++ 标准库提供了 std::map 类。

示例代码
#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m;

    // 添加键值对
    m["apple"] = 10;
    m["banana"] = 20;
    m["cherry"] = 30;

    std::cout << "Map elements: " << std::endl;
    for (const auto& pair : m) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

http://www.kler.cn/a/395038.html

相关文章:

  • Qt主线程把数据发给子线程,主线程会阻塞吗
  • 玩转ChatGPT:文献阅读 v2.0
  • 2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享
  • opc da 服务器数据 转 IEC61850项目案例
  • mysql 配置文件 my.cnf 增加 lower_case_table_names = 1 服务启动不了的原因
  • SQL 中 BETWEEN AND 用于字符串的理解
  • uniapp: IOS微信小程序输入框部分被软键盘遮挡问题
  • Vue2:组件
  • 常用服务部署
  • Python学习26天
  • SpringBoot(二十三)SpringBoot集成JWT
  • Ceph 中Crush 算法的理解
  • 【Linux】-学习笔记03
  • 【LangChain系列7】【LangChain实战—客服机器人项目】
  • Javascript中的深浅拷贝以及实现方法
  • CSS 语法规范
  • 【卷积神经网络】
  • 关于k8s中镜像的服务端口被拒绝的问题
  • ubuntu20.04 colmap 安装2024.11最新
  • Redis环境部署(主从模式、哨兵模式、集群模式)
  • 在Docker环境下为Nginx配置HTTPS
  • Java结合ElasticSearch根据查询关键字,高亮显示全文数据。
  • 20241114软考架构-------软考案例15答案
  • MQ集群
  • Intellij idea 报错:Error : java 不支持发行版本5
  • 华为数字化转型的本质为何是管理变革