首页 > 编程语言 >C++ 数据结构详解

C++ 数据结构详解

时间:2024-11-11 13:19:14浏览次数:3  
标签:std 数据结构 示例 代码 C++ 详解 include

目录

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;
}

标签:std,数据结构,示例,代码,C++,详解,include
From: https://blog.csdn.net/licy__/article/details/143680822

相关文章

  • 各个语言的标准输入输出(C++,Python,Go,MATLAB)
    标准输入和输出C/C++cin,cout,getline()进行输入输出#include<bits/stdc++.h>usingnamespacestd;intmain(){//输入`1231231` inta,b,c; cin>>a>>b>>c; cout<<a<<b<<c<<endl;//输出1231231并换行(endl代表换行) //输入`......
  • python中常见的8种数据结构之一字典及其使用方法
    字典(Dictionary)是Python中常见的数据结构之一,用于存储一组配对的键(key)和值(value)。字典是可变的、无序的,并且键必须是唯一的。创建字典的方法有两种:使用花括号{}或使用内置的dict()函数。下面是一些常见的字典操作和方法:1.创建字典:my_dict={'key1':'value1','key2'......
  • C++公司人员管理系统-毕业设计源码34001
    摘  要随着信息技术的快速发展和企业规模的持续扩大,传统的手工管理方式已经无法满足现代企业对员工信息管理的需求。因此,开发一套高效、稳定且易于维护的公司人员管理系统成为了企业信息化的重要任务之一。C++作为一种成熟、高效的编程语言,以其强大的面向对象特性和广泛的......
  • IPD项目管理流程详解:大厂实战经验分享
    IPD(IntegratedProductDevelopment)项目管理流程是由跨职能团队协作推动的产品开发模式,广泛应用于高科技行业、制造业以及大企业的产品开发过程中。IPD强调团队成员之间的紧密合作、系统思维和产品开发全生命周期的管理。其核心目标是通过整合各个职能领域的专家,实现高效的产品设......
  • 【编程语言】理解C/C++当中的指针
    指针是C/C++语言中一个非常强大且重要的概念,也是编写高效程序的基础之一。对于没有编程背景的初学者来说,理解指针可能有些难度,但通过本篇文章的介绍,相信你会对指针有一个清晰的认识。本文将从指针的基本概念、作用、代码示例、注意事项等方面,带你一步步了解指针的世界。什......
  • Tomcat配置文件详解
    Tomcat配置文件详解这段XML配置文件是ApacheTomcat服务器的配置文件server.xml的一部分,它定义了Tomcat服务器如何运行,包括监听端口、连接器设置、服务组件、全局命名资源以及引擎和主机配置等。下面是对主要元素的详细解释:<Server>标签这是整个配置文件的根标签,包含了服务器......
  • 数据结构 ——— 链式二叉树oj题:对称二叉树
    目录题目要求手搓一个对称二叉树代码实现 题目要求给你一个二叉树的根节点 root ,检查它是否轴对称手搓一个对称二叉树代码演示://数据类型typedefintBTDataType;//二叉树节点的结构typedefstructBinaryTreeNode{ BTDataTypedata;//每个节点的数据......
  • 【前端】JSX 中事件处理详解
    在React和JSX中,处理事件是构建交互式用户界面的重要部分。通过合理地处理事件,可以实现用户与应用的互动,从而提升用户体验。本文将详细说明如何在JSX中处理事件,包括类组件和函数组件中的不同方法,并提供示例代码和最佳实践。1.事件处理的基本概念在React中,事件处......
  • [C++]类和对象(上篇)
    类和对象类①类的声明与定义②成员变量的规范化1.成员变量为声明③计算类的大小1.对齐数的意义2.错题展示④成员函数的位置以及传参细节1.成员函数的位置2.传参细节this指针⑤类的6个默认成员函数1.构造函数概念特性无参构造函数与全缺省构造函数不能同时出现默......
  • 【C/C++】5.字节对齐和字节填充
    字节对齐(alignment)和字节填充(padding)是优化内存访问效率和确保数据结构正确存储的重要机制。了解字节对齐和填充的原理可以帮助我们更好地设计数据结构,并且减少因不合理的内存布局引起的性能问题或程序错误。1.字节对齐(Alignment)字节对齐是指在内存中存储数据时,将数据......