Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。


3
什么是“ * this的右值参考”?
在clang的C ++ 11状态页面中遇到了一个名为“ * this的右值引用”的提案。 我已经阅读了很多有关右值引用并理解它们的知识,但我认为我对此并不了解。使用这些条款,我在网络上也找不到太多资源。 该页面上有一份建议书链接:N2439(将移动语义扩展到* this),但我从那里也没有太多示例。 这个功能是关于什么的?

16
STL中的向量与列表
我在有效STL中注意到 向量是默认情况下应使用的序列类型。 什么意思 似乎无视效率vector无能为力。 有人可以给我提供vector一个不可行的方案,但list必须使用的方案吗?
238 c++  list  vector  stl 


15
为什么我的程序无法在Windows 7法语下编译?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在运行Windows 7 French,并且试图编译这个非常基本的程序,但是Visual Studio固执并且拒绝遵守。我也尝试在Coliru上使用GCC 4.7和Clang干线对其进行编译,尽管我认为Coliru在英语操作系统上运行,所以我或多或少地遇到相同的错误(输出在代码下方),所以我不希望它能正常工作。 我究竟做错了什么?我该如何解决? 码 #inclure <iostream> ent principal(ent argn, ent** argm) // entier, nombre d'arguments, valeur des arguments { std::cendehors << "Bonjour le monde!\n"; renvoi SORTIE_SUCCÈS; } 输出量 principal.cpp:1:6: erreur: prétraitement de la directive invalide #inclure #inclure <iostream> ^ principal.cpp:6:8: erreur: …

5
如何正确重载ostream <<操作符?
我正在用C ++写一个小的矩阵库,用于矩阵运算。但是我的编译器抱怨,以前没有。这段代码在架子上放置了6个月,在此之间,我将计算机从debian etch升级到lenny(g ++(Debian 4.3.2-1.1)4.3.2),但是在具有相同g ++的Ubuntu系统上,我遇到了同样的问题。 这是我的矩阵类的相关部分: namespace Math { class Matrix { public: [...] friend std::ostream&amp; operator&lt;&lt; (std::ostream&amp; stream, const Matrix&amp; matrix); } } 和“实现”: using namespace Math; std::ostream&amp; Matrix::operator &lt;&lt;(std::ostream&amp; stream, const Matrix&amp; matrix) { [...] } 这是编译器给出的错误: matrix.cpp:459:错误:'std :: ostream&Math :: Matrix :: operator &lt;&lt;(std :: ostream&,const …

21
如何最好地使未使用变量的警告静音?
我有一个跨平台应用程序,在我的一些函数中,并没有使用传递给函数的所有值。因此,我从GCC收到警告,告诉我有未使用的变量。 围绕警告进行编码的最佳方法是什么? 函数周围的#ifdef? #ifdef _MSC_VER void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight) #else void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/) #endif { 这是如此丑陋,但似乎是编译器希望的方式。 还是在函数末尾给变量赋零?(我讨厌这是因为它正在更改程序流中的某些内容以使编译器警告静音)。 有没有正确的方法?
237 c++  gcc  warnings  gcc-warning 

11
什么是C ++中的“翻译单位”
当时我正在阅读Meyers撰写的“ Effective C ++”,遇到了“翻译单元”一词。 有人可以给我一个解释: 1)到底是什么 2)在用C ++编程时应何时考虑使用它 3)如果仅与C ++有关,或者可以与其他编程语言一起使用 我可能已经在不知道该术语的情况下使用它了。
236 c++ 

2
什么是“跨度”?何时使用?
最近,我得到了span&lt;T&gt;在代码中使用的建议,或者在网站上看到了使用spans的答案-据说是某种容器。但是-我在C ++ 17标准库中找不到类似的东西。 那么,这是什么神秘的东西?span&lt;T&gt;为什么(如果不标准)使用它是一个好主意?

26
面试问题:检查一个字符串是否是另一字符串的旋转[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我的一个朋友今天在面试中被问到以下问题,询问软件开发人员的职位: 给定两个字符串s1,s2您将如何检查是否s1为的旋转版本s2? 例: 如果是,s1 = "stackoverflow"那么以下是其一些轮换版本: "tackoverflows" "ackoverflowst" "overflowstack" 其中,作为"stackoverflwo"是不旋转的版本。 他给出的答案是: 取s2,发现为子串最长前缀s1,这将使你的旋转点。找到该点后,s2在该点断开以获取s2a和s2b,然后检查是否concatenate(s2a,s2b) == s1 对于我和我的朋友来说,这似乎是一个很好的解决方案。但是面试官却不这么认为。他要求一个更简单的解决方案。请告诉我您将如何做来帮助我Java/C/C++? 提前致谢。
235 java  c++  c 

1
启用C ++ 11时std :: vector性能回归
当启用C ++ 11时,我在一个小的C ++代码段中发现了有趣的性能下降: #include &lt;vector&gt; struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector&lt;Item&gt; container; container.reserve(num_items); for (std::size_t i = 0; i &lt; num_items; ++i) { container.push_back(Item()); } return 0; } 使用g ++(GCC)4.8.2 20131219(预发行版)和C ++ 03,我得到: milian:/tmp$ g++ -O3 main.cpp &amp;&amp; …
235 c++  performance  gcc  c++11  vector 

8
如何在Ubuntu上安装OpenSSL库?
我正在尝试在使用OpenSSL 1.0.0的Ubuntu 10.04 LTS上构建一些代码。当我运行make时,它将使用“ -lssl”选项调用g ++。来源包括: #include &lt;openssl/bio.h&gt; #include &lt;openssl/buffer.h&gt; #include &lt;openssl/des.h&gt; #include &lt;openssl/evp.h&gt; #include &lt;openssl/pem.h&gt; #include &lt;openssl/rsa.h&gt; 我跑了: $ sudo apt-get install openssl Reading package lists... Done Building dependency tree Reading state information... Done openssl is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and …


27
有什么更好的方法可以避免do-while(0); 用C ++破解?
当代码流是这样的: if(check()) { ... ... if(check()) { ... ... if(check()) { ... ... } } } 我通常会看到此方法可以避免上述凌乱的代码流: do { if(!check()) break; ... ... if(!check()) break; ... ... if(!check()) break; ... ... } while(0); 有什么更好的方法来避免这种变通方法/黑客行为,从而使其成为更高级别(行业级别)的代码? 欢迎开箱即用的任何建议!
233 c++  do-while 

10
可以删除吗?
是否允许delete this;delete-statement是将在该类实例上执行的最后一条语句?当然,我确定this-pointer 表示的对象是正确new创建的。 我正在考虑这样的事情: void SomeModule::doStuff() { // in the controller, "this" object of SomeModule is the "current module" // now, if I want to switch over to a new Module, eg: controller-&gt;setWorkingModule(new OtherModule()); // since the new "OtherModule" object will take the lead, // I want to get rid …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.