选择数据结构

2024-07-01

根据需求使用不同的数据结构,但我如何知道应该使用哪种数据结构?我只是想知道如何选择合适的数据结构?谢谢


此流程图适用于 C++ 中的 STL,但您可以用 C 实现 STL 容器支持的任何数据结构。

  • 列表是一个链接列表
  • Vector是一个动态数组
  • 双端队列有点像动态数组的列表——有点像分割差异。
  • 队列和优先级队列就像他们说的那样(通常队列是用双端队列实现的,优先级队列通常是用向量或双端队列内的堆实现的)
  • Set/Map/Multiset/Multimap 都是使用某种形式的平衡二叉树来实现的。

2016 年更新:显然,我用来链接到此处的图像已被链接损坏,但您可以在这个问题上看到几个等效的图像:在什么情况下我需要使用特定的 STL 容器? https://stackoverflow.com/questions/471432/in-which-scenario-do-i-use-a-particular-stl-container

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择数据结构 的相关文章

  • C++11 中的延迟初始化顺序

    考虑以下代码 分为三个编译单元 a h struct A void Register const char s const char m s 10 int m i 0 A GetA a cpp include a h include
  • 分段错误(核心转储)

    当我尝试运行此程序时 出现分段错误 核心转储 它编译完美 但我收到错误 我不知道为什么 我已尝试以所有可能的方式编辑我的代码 但仍然收到此错误 我已经没有主意了 任何帮助都会很棒 谢谢 unsigned short reg NULL int
  • IDeserializationCallback 与 OnDeserializedAttribute

    据我了解 当对象在反序列化后需要执行某些任务时 可以使用 IDeserializationCallback 接口和 OnDeserialized 事件 IDeserializationCallback Serializable public
  • 复制空对象是否涉及访问它

    灵感来自this https stackoverflow com a 48273386 4832499问题 struct E E e E f e Accesses e To access https timsong cpp github i
  • 当找到路由/url 但未找到其背后的资源时返回什么?

    当路由customer 1存在但customer搜索背后的资源 实体不存在时 我应该返回 404 吗 我的意思是路线存在 或者我应该返回一个 204 无内容 因为我找不到客户 结果为空 微软样本 public IHttpActionResu
  • 为什么 C# 三元运算符不能与委托一起使用?

    当分支选择函数时 使用三元运算符来选择函数可能是有意义的 但这是不可能的 为什么 public class Demo protected bool branch protected void demo1 protected void dem
  • C++14 中专门用于数组类型的分配器?

    为什么 c 14 中没有 std allocator 的数组模板专门化 当我自己尝试专门化 std allocator 时 我在实现 Construction 和 destroy 方法时遇到了死胡同 是这个原因吗 那么为什么 std all
  • 安装 Windows 服务以使用 ServiceAccount.User 在用户凭据下运行,但不提示

    我创建了一个 C Windows 服务及其随附的用于创建安装程序的 Visual Studio 安装项目 它成功安装了该服务 当我从枚举中选择任何值时ServiceAccount除了ServiceAccount User 该服务安装时不会提
  • “constexpr”有什么用?

    我实在是找不到它有什么用处 我的第一个想法是我可以用它来实现 按合同设计 而不使用如下宏 struct S S constexpr int i S i static assert i lt 9 i must be lt 9 S int i
  • 将 wav 文件存储在数组中

    我需要一种快速方法来将 wav 文件的所有样本存储在数组中 我目前正在通过播放音乐并存储来自示例提供程序的值来解决这个问题 但这不是很优雅 从 NAudio 演示中 我有带有此方法的 Audioplayer 类 private ISampl
  • 如何从 C 函数中返回多个值?

    如果我有一个产生结果的函数int和一个结果string 如何从函数中返回它们 据我所知 我只能返回一件事 这是由函数名称前面的类型决定的 我不知道你的是什么string是的 但我假设它管理自己的内存 您有两种解决方案 1 返回一个struc
  • C++ 流到内存

    我怎样才能创造std ostream and std istream对象指向我分配和管理的一块内存 我不希望流释放我的内存 我正在考虑使用rdbuf gt pubsetbuf 修改其他流之一 例如sstringstream 不过我认为str
  • C# 我可以访问没有完整限定名称的枚举吗

    我有一个 C 枚举类型 它以非常长的限定名称结尾 例如 DataSet1 ContactLogTypeValues ReminderToFollowupOverdueInvoice 为了便于阅读 如果我可以告诉一个特定的函数只使用名称的最后
  • 如何从库调用方法到 C# 控制台

    我在新库中创建了一个方法 这是我的代码 namespace ClassLibrary1 public class Class1 public static bool ISprime int prime if prime lt 2 retur
  • 如何确保 IsInRole 检查不使用缓存的凭据

    我有一个连接到 WCF 服务的 WPF 客户端 我想锁定某些功能 以便只有某些用户可以执行某些操作 WCF 服务在执行服务方法时模拟客户端用户 操作系统是Windows XP 我正在读书这个问题 https stackoverflow co
  • Sharepoint 客户端 GetFolderByServerRelativeUrl 文件夹修改日期

    我试图在使用 GetFolderByServerRelativeUrl 函数时检索文件夹的 修改日期 和 创建日期 我该怎么做 我只能从中获取relativeUrl 和文件夹名称 下面是我为检索文件夹所做的操作 请帮忙 FolderColl
  • C:分段错误:GDB:<读取变量时出错>

    我有一个函数shortestPath 它是Dijkstra算法的修改实现 用于我正在为comp2类开发的棋盘游戏AI 我浏览了网站并使用 gdb 和 valgrind 我确切地知道段错误发生的位置 实际上几个小时前就知道了 但无法弄清楚是什
  • 如何在调试 C 程序时将 gdb 值转换为 python 数字对象

    我在调试 C 程序时使用 python2 6 的 gdb 模块 并希望根据实例的 Type 将 gdb Value 实例转换为 python 数字对象 变量 例如 把我的C程序SomeStruct gt some float val 1 6
  • C# / 面向对象设计 - 维护有效的对象状态

    设计类时 维护有效状态的逻辑应该合并在类内部还是类外部 也就是说 属性是否应该在无效状态 即值超出范围等 上引发异常 或者是否应该在构造 修改类的实例时执行此验证 它属于班级 除了类本身 以及它委托的任何助手 之外 没有任何东西应该知道或关
  • 如何将特殊字符 (0x80..0x9F) 写入 Windows 控制台?

    我想要这段代码 System Console Out WriteLine il display il代替oil正如我的测试程序中所做的那样 The Console OutputEncoding默认设置为Western European DO

随机推荐

  • PHP Serialize() ― 规范 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找有关 PHP serial
  • 使用 terraform 初始化 terraform 后端

    我刚刚开始使用 terraform 我希望能够使用 AWS S3 作为后端来存储项目的状态 terraform backend s3 bucket tfstate key app state region us east 1 我觉得使用 t
  • 如何使用判别函数绘制 3 个类别之间的决策边界

    我有 3 个判别函数 将 2D 空间划分为 3 个区域 我想绘制这些区域之间的决策边界 我不知道如何在 python 中使用 matplotlib meshgrid 来做到这一点 对于2个判别函数 过程很简单 我计算值为 0 的函数和等高线
  • 从 canActivate 方法返回 Observable 并在 false 时重定向

    我一直在寻找解决方案但没有运气 如果用户获得授权 我需要调用服务器 并且我需要 canActivate 方法来等待该调用的结果 但我似乎无法将各个部分拼凑在一起 下面是我的代码 我的问题在代码的注释中 canActivate route A
  • 从 Outlook 中提取电子邮件地址

    我正在尝试提取 Outlook 收件箱中所有电子邮件的电子邮件地址 我在互联网上找到了这段代码 Sub GetALLEmailAddresses Dim objFolder As MAPIFolder Dim strEmail As Str
  • NSCollectionView 自定义布局启用滚动

    我无法垂直和水平滚动来使用自定义布局NSCollectionView 根据文档 在我的子类中我返回collectionViewContentSize如果太大 则会在集合视图的封闭滚动视图中自动启用滚动 但是 即使我将所有元素排列在水平行中
  • Select2 的行为与未为 Select2 定义的 Uncaught 查询函数非常不同

    我按以下方式加载 select2 的值 声明类型 var AdjustmentType Backbone Model extend url Hexgen getContextPath referencedata adjustmenttype
  • ListView 内的 TextBox 绑定到对象,双向绑定不起作用

    Edit 好吧 在尝试了无数次但没有成功之后 我创建了一个非常小的 Wpf 应用程序 您可以直接复制此代码 请注意 当您更改文本框中的值并按 测试 按钮时 这些值永远不会更新 我不明白为什么双向绑定不起作用 请帮忙 这是 xaml
  • 使用 Symfony2 对实体进行级联验证

    我想知道如何使用验证器服务对实体执行级联验证 Using validator this gt get validator errorList validator gt validate entity 不执行 实体 子实体的验证 我很确定它可
  • 在 Scala 宏中对来自 ValDef 的 TypeTree 值进行模式匹配的正确方法?

    我需要读取案例类的字段并根据字段的类型执行不同的操作 我想我会尝试使用宏 读取每个 TypeTree 上的 ValDef 和模式匹配 但这并没有揭示每个 TypeTree 代表什么 例如 整数和字符串都显示为 TypeTree 除了打电话还
  • Python pandas - 根据集体 NaN 计数删除组

    我有一个基于不同气象站的多个变量 温度 压力等 的数据集 stationID Time Temperature Pressure 123 1 30 1010 5 123 2 31 1009 0 202 1 24 NaN 202 2 24 3
  • 画笔和钢笔使用指南

    制作 GDI 画笔和钢笔有多贵 我应该在添加所需的基础上创建它们并将它们包装在 using 中以便快速处理它们 还是应该创建一个类似于 System Drawing Brushes 类的静态类 IMO 它们足够高效 您通常不应该创建在多个方
  • 使用按键选择 PrimeNG 表上的行

    我正在使用 PrimeNG 表 并尝试选择pSelectableRow通过按键 我有一个全局搜索输入 它将过滤表的所有结果 当用户完成搜索时 我希望他们能够单击键盘上的按钮并从过滤的选项中选择行 目前 如果用户正在搜索并且输入框获得焦点 则
  • Mac 上缺少 spring-boot-starter-web hibernate-validator 依赖项

    我在STS Spring工具套件 上创建了Spring Boot项目 Spring Starter Project Window和Mac都有 这是我的pom xml
  • 尝试创建测试时注入自动装配依赖项失败

    我正在尝试创建一个junit测试存储库 我得到了这个很好的异常 完全例外 org springframework beans factory BeanCreationException Error creating bean with na
  • 多处理冻结计算机

    我通过使用多处理提高了执行时间 但我不确定 PC 的行为是否正确 它会冻结系统 直到所有进程完成 我使用的是 Windows 7 和 Python 2 7 也许我做错了 这就是我所做的 def do big calculation sub
  • 解析 Apple Mach O-Linker 错误?

    我正在使用解析框架 突然出现 39 个错误 即使我删除框架 它仍然有错误 我已经检查了构建阶段 设置和路径 但没有任何效果 另外 我正在使用 xcode 4 6 3 我有一台过时的 macbook Ld Users anikakablan
  • 修改 %in% 运算符以查找列表中的对象

    我必须修改 in 运算符将在列表中查找对象 我有一个清单 list1 lt list c 5 6 6 list 2 c 5 6 string 未修改 in 测试这些值后的运算符 c 5 6 in list1 6 in list1 2 in
  • ggplot2 每个美学的多个尺度/图例,重新审视[重复]

    这个问题在这里已经有答案了 我有一个例子 我想使用 ggplot 突出显示序列比对的几个属性 我正在使用 geom tile 并希望为两个分数属性提供两组不同颜色的图块 我只能想象一个 我意识到每种审美的一个尺度的限制 以及其背后的逻辑 h
  • 选择数据结构

    根据需求使用不同的数据结构 但我如何知道应该使用哪种数据结构 我只是想知道如何选择合适的数据结构 谢谢 此流程图适用于 C 中的 STL 但您可以用 C 实现 STL 容器支持的任何数据结构 列表是一个链接列表 Vector是一个动态数组