问题标签 [stl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 对象的通用缓存
有谁知道对象模板缓存的任何实现?
- 您使用一个键来查找对象(与 std::map<> 中的相同)
- 您指定可以同时在缓存中的最大对象数
- 有一些工具可以创建在缓存中找不到的对象
- 有一些工具可以知道何时从缓存中丢弃对象
例如 :
它可以像 LRU 或 MRU 缓存一样简单。
欢迎任何建议!
网卡
c++ - C++ 中的存在图
我想要一个类似std::map的东西,但我只想看看该项目是否存在,我实际上不需要一个键和一个值。我应该使用什么?
c++ - STL之类的容器typedef快捷方式?
STL 容器的一个常见模式是:
因此,为了避免编写模板参数的声明,我们可以在某处这样做:
但是,如果此映射仅用于单个函数或单个迭代,则这是一个令人讨厌的开销。
这个typedef有什么办法吗?
c++ - 返回“任何类型的输入迭代器”而不是 vector::iterator 或 list::iterator
假设我想在 C++ 中实现一个数据结构来存储有向图。由于 STL 容器,弧将存储在节点中。我希望用户能够以类似 STL 的方式迭代节点的弧。
我遇到的问题是我不想在 Node 类(实际上是一个抽象基类)中公开我将在具体类中实际使用的 STL 容器。因此,我不想让我的方法返回 std::list::iterator 或 std::vector::iterator ...
我试过这个:
但这是不正确的,因为 vector::const_iterator 不能用于创建 ArcIterator。那么这个 ArcIterator 是什么?
我找到了这篇关于STL 的自定义迭代器的论文,但它没有帮助。我今天一定有点重... ;)
c++ - 为什么使用迭代器而不是数组索引?
取以下两行代码:
还有这个:
我被告知第二种方式是首选。为什么会这样?
c++ - c++ 异常:抛出 std::string
当我的 C++ 方法遇到奇怪的事情并且无法恢复时,我想抛出一个异常。可以抛出std::string
指针吗?
这是我期待做的事情:
c++ - 是否应该更喜欢 STL 算法而不是手动循环?
我似乎在这里的问题和答案中看到了比 for_each()、transform() 等更多的迭代器的“for”循环。Scott Meyers 建议首选 stl 算法,或者至少他在 2001 年就这样做了。当然,使用它们通常意味着将循环体移动到函数或函数对象中。有些人可能觉得这是一个不可接受的并发症,而另一些人可能觉得它更好地解决了问题。
那么...... STL 算法是否应该优于手动循环?
c++ - std::map 迭代 - 调试和发布版本之间的顺序差异
这是我必须使用的常见代码模式:
但是,我发现处理映射的顺序(在 for 循环中)可能会因构建配置是 Release 还是 Debug 而有所不同。似乎发布版本中发生的编译器优化会影响此顺序。
我认为通过begin()
在上面的循环中使用,并在每次方法调用后递增迭代器,它将按初始化顺序处理映射。但是,我还记得读过地图是作为哈希表实现的,并且无法保证顺序。
这特别烦人,因为大多数单元测试都是在 Debug 构建上运行的,并且通常在外部 QA 团队开始测试之前不会发现奇怪的顺序依赖错误(因为他们使用的是 Release 构建)。
谁能解释这种奇怪的行为?
c++ - 初始化静态 std::map在 C++ 中
初始化静态地图的正确方法是什么?我们需要一个静态函数来初始化它吗?
c++ - 在 std::map 中设置所有值
如何在std::map
不使用循环遍历每个值的情况下将 a 中的所有值设置为相同的值?