- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C++14 的标准中读到,当使用 unordered_set
的 erase(iterator pos)
时,元素的顺序被保留。
我用 g++-6.2.0 和 clang-3.9 尝试了以下代码(不过在 linux 上,这个 gcc 的标准库)。两者都应该能够通过 C++14 规范来处理,我认为:
#include <unordered_set>
#include <iostream>
using std::unordered_set; using std::cout;
// output
template<typename Elem, typename Comp>
std::ostream& operator<<(std::ostream&os, const unordered_set<Elem,Comp>&data) {
for(auto &e : data) { os << e << ' '; } return os << '\n'; }
int main() {
unordered_set<int> nums{ 1,2,3,4,5,6,7,8,9,10 };
cout << nums; // MSVC: 9 1 2 3 4 5 6 7 8 10
for(auto it = nums.begin(); it!=nums.end(); ++it) {
if(*it % 2 == 0) {
nums.erase(it);
}
}
cout << nums; // MSCV: 9 1 3 5 7
}
是的,元素的顺序是任意的。这里 MSVC++ 19.00 有 9 1 2 3 4 5 6 7 8 10
。在删除所有偶数元素后,剩余元素的顺序仍然相同 9 1 3 5 7
。
尽管使用 g++ 和 clang++,我得到了一个完全错误的输出
10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
这似乎表明元素的顺序在调用之间未保留但只是......我不知道。
这是怎么回事?
最佳答案
我想这个循环是错误的:
for(auto it = nums.begin(); it!=nums.end(); ++it) {
if(*it % 2 == 0) {
nums.erase(it);
}
}
如果执行了erase,那么它就会失效,你不能增加它。据推测,它会导致上述行为。
你应该使用这样的东西:
for(auto it = nums.begin(); it!=nums.end();) {
if(*it % 2 == 0) {
nums.erase(it++);
} else {
++it;
}
}
关于c++ - unordered_set::erase(pos) 是否保留元素的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576583/
我计划使用 pos for .net 创建我自己的 POS 系统。 到目前为止,我从未创建过任何 POS 系统或为 .net 使用过 pos。我试图找到一些教程但没有成功,有人知道一些好的网站或书籍吗
阅读 pygame 教程 here ,你会发现这个例子:(箭头是我的) for o in objects: screen.blit(background, o.pos, o.pos) # Re
所以我一直在为蓝牙打印机编写 Android 应用程序一段时间,我意识到这实际上是 ESC/POS 标准:http://nicholas.piasecki.name/blog/wp-content/u
我设法在 上更改了 POS 收据模板/addons/point_of_sale/static/src/xml/pos.xml 其中位于: 但是如何更改 PosTicket 上的详细信息?
我有一个长度为 32 的字符数组,想从中取出某些字符。例如 111111000000000000000000111111 #include #include /* Creates a sub-s
Parsey McParseface输出的POS标签和Depedency标签在 tag-set 中给出和 label-set文件 here分别。 Syntaxnet自述文件概述了该模型是在 Penn
我正在尝试使用 Stanford POS-tagger,我想问一下是否可以解析(实际上只有 pos 标签就足够了)英文文本并以 conll 格式输出结果。有这样的选择吗? 我正在使用 Stanford
我有使用 NLTK 的平均感知器标记器进行词性标记的代码: from nltk.corpus import wordnet from nltk.stem import WordNetLemmatize
我正在尝试为 58mm POS 热敏打印机编写正确的 ESC/POS 命令。我尝试将此命令作为 ASCII 文本输入,并将其转换为 HEX,但在这两种情况下,打印机都只打印此代码,而不是收据输出。代码
我正在使用 spaCy 库进行 POS 标记,但是当我运行这段代码时,它会返回数字来代替 pos 标签: import spacy from spacy.lang.fr.examples import
我博客的标题显示标题后面有一张图片。我希望这张图片有自己的高度直到它变得大于50vh(用户视口(viewport)的 50%)。 但正常行为是图像从底部裁剪,我希望图像从顶部和底部裁剪(换句话说:我希
我正在阅读句子列表并使用 NLTK 的 Stanford 词性标注器标记每个单词。我得到这样的输出: wordnet_sense = [] for o in output: a = st.ta
我们正在尝试实现一个支持 COM 接口(interface)的 .NET 服务对象来模拟 POSPrinter,但仍然与旧技术兼容。 我们在下面的类中有我们的接口(interface)和类对象。 us
我有一个列表 list = ['about','above','account','address','after'] 我将其传递给 nltk pos 标签 函数,输出看起来像这样以列表的形式: [(
有谁知道为什么“深度”(vertShader) 不同于“gl_FragCoord.z”(从 opengl 渲染)?特别是随着 z 的减小,差异变得更大。 “深度”是否有可能在更高的 z 值下更精确?
假设我有一个 block 元素,例如 h2: Title 然后我给它一个背景色。背景将跨越 wrapper 的整个宽度(应该如此)。 如果我 float 它,或者 position: absolute
我提供了一个 fiddle : http://jsfiddle.net/dCYdw/ 这个例子很惨,但是问题也能看出来。 .levelFive 是问题所在。这应该在所有其他元素之前,因为它的 z-in
C++(STL): Request for member ‘push_back’ in ‘pos.std::vector::operator[](((std::vector::size_type)i)
以下 JavaScript 中包含云图像的元素的动画的逻辑错误到底是什么?我认为“pos”变量似乎在每次迭代中都偏离了方向,而且我无法弄清楚每次迭代时云图像的运动如何变得越来越疯狂。 //CSS: #
我正在尝试在RMarkdown文档中插入图形,但无法将其显示在正确的位置。下图显示了该问题:使用图标题时,该图显示在页面顶部而不是文档中相关段落的下面。 这是此最小工作示例的代码: --- title
我是一名优秀的程序员,十分优秀!