草庐IT

STL容器之queue

全部标签

c++ - 创建一个带有静态成员容器的类,其中包含该类的所有实例?

我的目标是创建一个类,它将从它创建的每个实例添加到静态成员容器中,以便可以轻松访问所有实例。上下文是一个游戏,其中对象在Game.init()函数中创建,然后添加到容器中。Game.update()和Game.Draw()函数然后遍历容器以访问和操作对象。我希望构造函数和析构函数能够处理这些任务,而不是手动将对象添加到容器或从容器中移除对象。当对象(此代码中的框)被复制或分配时,指针变得无效,这是有问题的。使用对象容器而不是指向对象的指针容器会导致生成过多的拷贝,而且我无法使用引用来实现这一点。我正在寻找有关如何改进此代码以避免这些问题的一些提示(不需要使用指向对象容器的指针,事实上我

DP读书:社区文档(小白向)解读——iSulad 轻量级容器引擎功能介绍以及代码架构解析

10min带你快速了解iSulad容器技术方案功能介绍以及代码架构解析iSulad是啥iSulad怎么用:先看大佬咋说——maintainer李峰iSulad轻量级容器引擎功能介绍以及代码架构解析iSulad提问iSulad_SIGiSulad的仓库:主仓库嘿嘿仓库链接:[https://gitee.com/openeuler/iSulad](https://gitee.com/openeuler/iSulad)官网链接:[https://www.openeuler.org/zh/other/projects/isula/](https://www.openeuler.org/zh/other

c++ - 黑莓 10 : GNU STL

我正在尝试使用MomenticsIDE2.0版创建一个BB10级联项目,我需要该项目使用GNU标准库而不是Dinkumware(因为我有使用arm-unknown-nto-qnx8编译的外部库。0.0eabi-g++仅支持gnustd)。在IDE中,我已将ProjectProperties->C/C++Build/Settings/Runtime更改为“C++GNUwithexceptions”。但是,当我运行一个带有我创建的静态库(.a文件)的简单项目时(只有一个头文件包含构造函数、std::string对象、setter和getter(用于对象)和相应的cpp文件),我在执行此操作

c++ - 如果将某个符号的名称用作 STL 容器的元素,为什么我不能隐藏它?

根据answer,我通过使用标志-fvisibility=hidden和构建工具链中的命令strip隐藏了共享库的大部分内部符号。但我发现一些用作标准C++容器元素的符号无法隐藏。例如,/*example1.cpp*/#include#defineMY_EXPORTS__attribute__((visibility("default")))extern"C"{MY_EXPORTSvoid*create();MY_EXPORTSvoiddosth(void*,inti);MY_EXPORTSvoidrelease(void*);}classPoint{public:intx;inty;

c++ - 无法在 CGAL 中创建 AABB 树类型的 STL 容器

我正在尝试创建类型为map>的STL映射(AABBtree's的map)当我尝试为map分配一个值时,例如(此代码仅用于演示目的)://CGALincludesbegin#include#include#include#include#include#include//CGALincludesend/**CGALtypedef'sforinitialization*/typedefCGAL::Simple_cartesianK;typedefK::FTFT;typedefK::Point_3Point_3;typedefK::Segment_3Segment;typedefCGAL::

c++ - 为什么容器分配器需要指定它们分配的类型?

如果我为容器使用自定义分配器,我不喜欢必须重复包含的类型名:templatestructMyAllocator:publicstd::allocator{//...Usualallocatorimplementation};typedefstd::vector>int_container;typedefstd::vector>int_container_wrong_allocator;根据标准,第二行是未定义的行为,尽管大多数实现会将分配器重新绑定(bind)到正确的类型。我的问题是,既然要求容器和分配器属于同一类型,为什么没有适当的标准机制来强制执行(或完全避免)并消除用户错误的可能

c++ - 将 STL 容器与包含其自身 key 的类一起使用

我有一个对象,可以通过它的名字来识别,我想把它放在在其中一个STL容器中。classMyClass{public://gettersandsetters,otherfunctionsprivate:std::stringname;//othermembervariables};所以起初我认为类map结构的使用与我的情况无关,因为在那些结构中,标识符(键)与类本身。使用映射,我必须返回名称变量并将其复制到类“外部”(浪费内存且不合逻辑,违反了OOP规则)。我的下一个目标是使用类似集合的结构。在这种情况下,我只有关键字段,我在其中加载整个对象。使用此方法,我必须重载我的和==运算符才能将对

C++总结(7):STL无序容器之unordered_set、unordered_map、unordered_multiset、unordered_multimap详解

前两节介绍了STL中的顺序容器和关联容器,本节来介绍一下无序容器。无序容器与关联容器类似,但是关联容器是顺序排序的,而无序容器实现了未排序(哈希)的数据结构。文章目录1unordered_set2unordered_map3unordered_multiset4unordered_multimap1unordered_set无序集合(unordered_set)是一种使用哈希表实现的无序关联容器,其中键被哈希到哈希表的索引位置,因此插入操作总是随机的。无序集合上的所有操作在平均情况下都具有常数时间复杂度O(1),但在最坏情况下,时间复杂度可以达到线性时间O(n),这取决于内部使用的哈希函数,但

c++ - Qt Creator 无法解析 STL 容器

我已经下载了适用于Windows的Qt5.4,并在Windows8.1Pro中运行它。它与MingW和QtCreator3.3一起提供。我已经使用Qt几年了。QtCreatorIDE中似乎仍然缺少一个非常必要的组件。假设类Card是用函数getSymbol()定义的:classCard{public:stringgetSymbol()const;}在代码的某处,我有一个std::vector的Card:vectorplayable;还有代码中的其他地方:playable[0].getSymbol();^-----------------Notethisdot当我在上面的行中输入句点时,

c++ - 将类名插入容器

我有几个派生自QWidget的类我也有这样的模板函数templateQWidget*create(){returnstatic_cast(newT());}现在我要创建容器:QMapclasses//itisnotcompiling因此,我可以将容器值用作函数模板类型:QWidget*widget=create();我应该怎么做? 最佳答案 类不是C++中的一流对象(即它们不是可以传递或存储在容器中的数据)。有一些东西与类“名称”相似,但实际上您不能保证它是一个可读的名称,并且无论如何您都不能创建给定该名称的实例。你可以做的是制作一