问题标签 [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.

0 投票
3 回答
8568 浏览

c++ - 对象的通用缓存

有谁知道对象模板缓存的任何实现?

  • 您使用一个键来查找对象(与 std::map<> 中的相同)
  • 您指定可以同时在缓存中的最大对象数
  • 有一些工具可以创建在缓存中找不到的对象
  • 有一些工具可以知道何时从缓存中丢弃对象

例如 :

它可以像 LRU 或 MRU 缓存一样简单。

欢迎任何建议!

网卡

0 投票
7 回答
1444 浏览

c++ - C++ 中的存在图

我想要一个类似std::map的东西,但我只想看看该项目是否存在,我实际上不需要一个键和一个值。我应该使用什么?

0 投票
7 回答
1091 浏览

c++ - STL之类的容器typedef快捷方式?

STL 容器的一个常见模式是:

因此,为了避免编写模板参数的声明,我们可以在某处这样做:

但是,如果此映射仅用于单个函数或单个迭代,则这是一个令人讨厌的开销。

这个typedef有什么办法吗?

0 投票
10 回答
3448 浏览

c++ - 返回“任何类型的输入迭代器”而不是 vector::iterator 或 list::iterator

假设我想在 C++ 中实现一个数据结构来存储有向图。由于 STL 容器,弧将存储在节点中。我希望用户能够以类似 STL 的方式迭代节点的弧。

我遇到的问题是我不想在 Node 类(实际上是一个抽象基类)中公开我将在具体类中实际使用的 STL 容器。因此,我不想让我的方法返回 std::list::iterator 或 std::vector::iterator ...

我试过这个:

但这是不正确的,因为 vector::const_iterator 不能用于创建 ArcIterator。那么这个 ArcIterator 是什么?

我找到了这篇关于STL 的自定义迭代器的论文,但它没有帮助。我今天一定有点重... ;)

0 投票
27 回答
77763 浏览

c++ - 为什么使用迭代器而不是数组索引?

取以下两行代码:

还有这个:

我被告知第二种方式是首选。为什么会这样?

0 投票
7 回答
171455 浏览

c++ - c++ 异常:抛出 std::string

当我的 C++ 方法遇到奇怪的事情并且无法恢复时,我想抛出一个异常。可以抛出std::string指针吗?

这是我期待做的事情:

0 投票
11 回答
9295 浏览

c++ - 是否应该更喜欢 STL 算法而不是手动循环?

我似乎在这里的问题和答案中看到了比 for_each()、transform() 等更多的迭代器的“for”循环。Scott Meyers 建议首选 stl 算法,或者至少他在 2001 年就这样做了。当然,使用它们通常意味着将循环体移动到函数或函数对象中。有些人可能觉得这是一个不可接受的并发症,而另一些人可能觉得它更好地解决了问题。

那么...... STL 算法是否应该优于手动循环?

0 投票
3 回答
1631 浏览

c++ - std::map 迭代 - 调试和发布版本之间的顺序差异

这是我必须使用的常见代码模式:

但是,我发现处理映射的顺序(在 for 循环中)可能会因构建配置是 Release 还是 Debug 而有所不同。似乎发布版本中发生的编译器优化会影响此顺序。

我认为通过begin()在上面的循环中使用,并在每次方法调用后递增迭代器,它将按初始化顺序处理映射。但是,我还记得读过地图是作为哈希表实现的,并且无法保证顺序。

这特别烦人,因为大多数单元测试都是在 Debug 构建上运行的,并且通常在外部 QA 团队开始测试之前不会发现奇怪的顺序依赖错误(因为他们使用的是 Release 构建)。

谁能解释这种奇怪的行为?

0 投票
12 回答
532890 浏览

c++ - 初始化静态 std::map在 C++ 中

初始化静态地图的正确方法是什么?我们需要一个静态函数来初始化它吗?

0 投票
3 回答
13724 浏览

c++ - 在 std::map 中设置所有值

如何在std::map不使用循环遍历每个值的情况下将 a 中的所有值设置为相同的值?