c++-standard-library相关内容
可能重复: 什么是STL与”C ++标准库“打击所有? 我非常习惯于 STL (“标准模板库”),我常常使用它,当我真的的意思是 C ++标准库。所以,因为几乎C ++( - 11)标准库中的一切都是一个模板,我想知道:有什么是STL和什么是不是,在C ++标准库?也许是容器,流,算法等? 或者我应该停止使用术语“STL”,因为它是历史的SGI lib年回来?这将是困难的...
..
Cython为我们提供了一种导入C ++标准库数据结构的简单方法,例如: 从libcpp.vector cimport vector $但是关于用C ++ 11引入的新容器11:b $ b从libcpp.utility cimport对 std :: unordered_map , std :: unordered_set 等是否以相同的方式支持?我找不到合适的导入语句。
..
必须在C ++中实现符合标准的C ++标准库实现吗? 如果没有,是否允许使用纯C ++ &标准图书馆一些实现定义的行为? 我知道有并行实现依赖扩展(至少在C ++ 11之前),但它们是否真的符合? 解决方案 否。 实际上,标准中甚至规定 #include 例如)可以简单地导入一个预先存储的AST,而不是引用一个文件。
..
为什么要向 std 命名空间添加名称未定义的行为? 明显的答案是“说,“例如in C ++ 14 [namespace.std] 17.6.4.2.1 / 1: 如果C ++程序的行为是未定义的除非另有规定,否则将命名空间 std 或命名空间 std 中的 命名空间添加声明或定义。 ... 但是,我真的对这个裁决的原因感兴趣。我当然可以理解添加已经在 std 中的名称的重载可能
..
我的问题是如何制作这个代码更快(学习最佳实践)?,已被搁置(bummer)。问题是在具有浮点数的数组上优化循环,测试它们是否在给定的间隔内。数组中匹配元素的索引将存储在提供的结果数组中。 测试包括两个条件(小于上限,大于下限) 。明显的测试代码是 if(elem = lower)... 。我观察到分支(包括涉及短路运算符的隐含分支)比第二比较贵得多。我想到的是
..
我的问题是如何制作这个代码更快(学习最佳实践)?,已被搁置(bummer)。问题是在具有浮点数的数组上优化循环,测试它们是否在给定的间隔内。数组中匹配元素的索引将存储在提供的结果数组中。 测试包括两个条件(小于上限,大于下限) 。明显的测试代码是 if(elem = lower)... 。我观察到分支(包括涉及短路运算符的隐含分支)比第二比较贵得多。我想到的是
..
只是想知道为什么C ++标准库使用所有小写和下划线,而不是 camelCase 或 PascalCase 命名约定。 我个人认为后者在输出代码时更容易处理,但是有没有合理的理由使用前者? 解决方案 主要原因:保持与现有代码的兼容性,因为他们也使用C。 您必须完成 C ++编码标准 这些链接讨论了C / C ++标准库的命名约定。 C API的命名约定 C / C
..
8年前,Stephen Lavavej发布了此博文,其中包含简单的分配器实现,命名为“Mallocator”。从那时起,我们已经转换到C ++ 11的时代(很快C ++ 17)...新的语言特性和规则是否会影响Mallocator,还是仍然是相关的? 解决方案 STL自己在他的 STL功能和实现技术在CppCon 2014(从26'30开始)讲话。 幻灯片在github上。 我
..
Gnu C ++编译器似乎将 __ cplusplus 定义为 1 #include int main(){ std :: cout C ++ 1
..
函数 std :: shuffle 已在C ++ 11中引入: 模板 void shuffle(RandomIt first,RandomIt last,URNG& g); ,它具有与
..
C ++ 11标准的哪个部分(这里是一个副本的标准草案)需要如std :: set,std :: map,std :: unordered_set和std :: unordered_map的关联容器来立即调用从它们中删除的对象的析构函数? 换句话说 - 是标准兼容的关联容器允许延迟(不elide!)他们对它们存储的键和值的键和/或值析构函数的调用? p> 如果没有,标准中的哪个部分禁止
..
很久以来,我一直使用 std :: vector 和 std :: shared_ptr 。最近,当需要指向const对象的指针时,我开始使用 std :: shared_ptr 。这一切OK,因为 std :: shared_ptr 可以转换为 std :: shared_ptr 但是当我尝试使用 std :: vector
..
我可以重载现有类中的现有函数/运算符吗? 我试图做: #include #include using namespace std; string& string :: operator
..
我不确定如何使用 std :: istream :: exception (根据标准),让 std :: istream :: operator>> 如果不能将输入读入变量,则抛出异常,例如双。 下面的代码与clang / libc ++和gcc / libstdc ++有不同的行为: #include #include int ma
..
大量功能在标准c ++和Qt之间重复。在某些时候看起来很合理,但很多时候它看起来很愚蠢。就像我想做一个新的编程语言,学习我已经知道的东西。例如使用QFile。 此外,如果我做所有的Qt方式,并假设现在我想移出Qt框架,将是太冗长乏味重写该代码。 OTOH我喜欢Qt,因为它为我提供了图书馆,否则我不得不自己像webkit,数据库连接,dbus等。 你建议混合标准C ++或做纯净的Qt方式
..
我需要一个“字符串池”对象,我可以反复插入一个“字符序列”(我使用这个短语的意思是“字符串”,而不会与std :: string或C字符串混淆),获取一个指针到序列,并保证指针不会变得无效,如果/当池需要增长。使用一个简单的 std :: string 作为池将不工作,因为字符串超出其初始容量时可能被重新分配,从而使所有以前的指针无效进去。 池不会增长没有约束 - 有明确的点,我将调用 cl
..
代码: #include struct Foo { virtual void mf()= 0; }; struct Bar:Foo { virtual void mf(){} }; int main() { Bar o; std :: reference_wrapper包装器(o); }
..
我最近被 ios_base :: width 和/或 setw 操纵器重置所有写入信息流的项目。 也就是说,您必须这样做: while(whatever) { mystream
..
我想使用一个三元组类,尽可能类似于std :: pair。 STL似乎没有一个。我不想使用太重的东西,像Boost。有没有一些有用的FOSS非限制性许可三元组类,我可以从某地提起?我应该自己滚吗? 编辑:关于 std :: tuple 。 .. 对一个三元组特定类没有什么好处吗?我的意思是,用tuple,我不能做 模板
..
当我尝试使用std :: stoi并尝试编译它时,我收到错误消息“stoi不是std的成员”。我使用g ++ 4.7.2从命令行,所以它不能是IDE错误,我有所有我的包括顺序,和g ++ 4.7.2默认使用c + + 11。如果它有帮助,我的操作系统是Ubuntu 12.10。是否有未配置的项? #include #include usi
..