问题标签 [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::swap()
std::swap()
在排序甚至赋值期间被许多 std 容器(例如std::list
and )使用。std::vector
但是 std 的实现swap()
非常通用,对于自定义类型来说效率很低。
因此,可以通过重载std::swap()
自定义类型特定的实现来获得效率。但是如何实现它以便 std 容器使用它呢?
c++ - 这段代码是滥用 STL 的 find_if 吗?
假设我有一个存储在向量中的服务器名称列表,我想一次与他们联系,直到他们成功响应为止。我正在考虑通过以下方式使用 STL 的 find_if 算法:
其中 ContactServer 是谓词函数对象。
一方面,存在一个问题,因为谓词不会总是为相同的服务器名称返回相同的结果(因为服务器停机时间、网络问题等)。但是,无论使用哪个谓词副本,都将返回相同的结果(即谓词没有真实状态),因此在这种情况下,与状态保持谓词的原始问题无关。
你说什么?
c++ - 我应该避免哪些 C++ 陷阱?
我记得第一次学习 STL 中的向量,一段时间后,我想在我的一个项目中使用布尔向量。在看到一些奇怪的行为并做了一些研究之后,我了解到bools 的向量并不是真正的 bools 向量。
在 C++ 中是否还有其他常见的陷阱需要避免?
c++ - 为什么 std::fstream 类不采用 std::string?
这不是一个设计问题,真的,虽然看起来很像。(嗯,好吧,这是一个设计问题)。我想知道的是为什么 C++std::fstream
类不在std::string
其构造函数或开放方法中采用 a。每个人都喜欢代码示例,所以:
这让我一直在处理文件。C++ 库肯定会std::string
尽可能使用吗?
c++ - C++ STL 问题:分配器
我有一个关于 C++ STL 的(可能是愚蠢的)问题。当我创建一个容器(向量、集合、映射等)时,它是分配在堆栈上还是堆上?如果我做了一个集合,放了 500 万个字符串,我会不会担心堆栈溢出?
c++ - 为什么不能对 std::vector 使用前向声明?
如果我像这样创建一个类:
并像这样使用它:
编译时编译器失败main.cpp
。现在我知道的解决方案是#include "B.h"
,但我很好奇它为什么会失败。g++
orcl
的错误信息在这件事上都不是很有启发性。
c++ - 如何从具有特定值的 stl 向量中删除项目?
我正在查看 stl 矢量的 API 文档,并注意到矢量类上没有允许删除具有特定值的元素的方法。这似乎是一种常见的操作,而且没有内置的方法来做到这一点似乎很奇怪。
c++ - 我可以在 C++ 中使用具有值语义的多态容器吗?
作为一般规则,我更喜欢在 C++ 中使用值而不是指针语义(即使用vector<Class>
而不是vector<Class*>
)。通常,不必记住删除动态分配的对象可以弥补性能上的轻微损失。
不幸的是,当您想要存储都派生自一个公共基础的各种对象类型时,值集合不起作用。请参见下面的示例。
我的问题是:我可以吃蛋糕(价值语义)并吃掉它(多态容器)吗?还是我必须使用指针?
c++ - STL 矢量与地图擦除
在 STL 中,几乎所有容器都有擦除功能。我的问题是在向量中,擦除函数返回一个指向向量中下一个元素的迭代器。地图容器不这样做。相反,它返回一个 void。有谁知道为什么会出现这种不一致?
c++ - pop_back() 真的会使 std::vector 上的 *all* 迭代器无效吗?
此代码不起作用,因为pop_back()
调用时it
无效。但我没有找到任何关于std::vector::pop_back()
.
你有一些关于那个的链接吗?