Questions tagged «c++»

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

13
在C ++中将数组的所有元素初始化为一个默认值?
C ++注意:数组初始化在数组初始化方面有一个不错的清单。我有一个 int array[100] = {-1}; 期望它充满-1,但不是,只有第一个值是,其余为0和随机值的混合。 代码 int array[100] = {0}; 可以正常工作并将每个元素设置为0。 我在这里想念的是什么。如果值不为零,无法初始化吗? 和2:默认初始化(如上所述)是否比遍历整个数组并分配值的常规循环更快?

8
是否需要std :: unique_ptr <T>知道T的完整定义?
我在标头中有一些代码,如下所示: #include &lt;memory&gt; class Thing; class MyClass { std::unique_ptr&lt; Thing &gt; my_thing; }; 如果我在不包含Thing类型定义的cpp中包含此标头,则无法在VS2010-SP1下编译: 1&gt; C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ memory(2067):错误C2027:使用未定义类型'Thing' 替换std::unique_ptr为std::shared_ptr并编译。 因此,我猜测这是当前VS2010 std::unique_ptr的实现,需要完整的定义,并且完全依赖于实现。 还是?标准要求中是否有某些内容使得的实现无法std::unique_ptr仅与前向声明一起使用?感觉很奇怪,因为它只应持有一个指向的指针Thing,不是吗?

13
对自定义对象的向量进行排序
如何对包含自定义(即用户定义)对象的向量进行排序。 可能应该使用标准STL算法排序以及将对自定义对象中的某个字段(作为排序的键)进行操作的谓词(函数或函数对象)。 我在正确的轨道上吗?
248 c++  stl  sorting 

28
全局变量不好吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 3年前关闭。 改善这个问题 在C / C ++中,全局变量是否如我的教授所认为的那么糟糕?
247 c++  c  global-variables 

17
如何从std :: map检索所有键(或值)并将其放入向量中?
这是我出现的可能方法之一: struct RetrieveKey { template &lt;typename T&gt; typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map&lt;int, int&gt; m; vector&lt;int&gt; keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator&lt;int&gt;(cout, "\n")); 当然,我们还可以通过定义另一个函子RetrieveValues从映射中检索所有值。 还有其他方法可以轻松实现这一目标吗?(我一直想知道为什么std :: map不包含成员函数供我们这样做。)
246 c++  dictionary  stl  stdmap 

12
g ++(mingw)表示to_string不是std的成员
我正在制作一个小的词汇记忆程序,其中的单词会随机向我闪烁以获取含义。我想使用Bjarne Stroustroup告诉我们的标准C ++库,但是我遇到了一个看似陌生的问题。 我想将一个long整数更改为std::string以便能够将其存储在文件中。我已经雇用to_string()了相同的。问题是,当我用g ++(版本4.7.0,如其--‍version标志中所述)对其进行编译时,它说: PS C:\Users\Anurag\SkyDrive\College\Programs&gt; g++ -std=c++0x ttd.cpp ttd.cpp: In function 'int main()': ttd.cpp:11:2: error: 'to_string' is not a member of 'std' 我的程序出现此错误是: #include &lt;string&gt; int main() { std::to_string(0); return 0; } 但是,我知道这不可能,因为msdn库清楚地表明了它的存在,并且关于Stack Overflow(对于g ++版本4.5)的一个较早的问题说,可以使用该-std=c++0x标志将其打开。我究竟做错了什么?
245 c++  c++11  g++  mingw  tostring 

28
C ++比C#快多少?
还是现在相反? 据我所知,在某些领域C#被证明比C ++更快,但是我从来没有胆量亲自测试它。 以为你们中的任何人都可以详细解释这些差异,或者将我指向正确的位置以获取有关此信息。



9
复制初始化和直接初始化之间有区别吗?
假设我有这个功能: void my_test() { A a1 = A_factory_func(); A a2(A_factory_func()); double b1 = 0.5; double b2(0.5); A c1; A c2 = A(); A c3(A()); } 在每个分组中,这些语句是否相同?还是在某些初始化中有额外的(可能是可优化的)副本? 我已经看到人们都说两件事。请引用文字作为证据。还请添加其他情况。

4
什么时候使用点,箭头或双冒号来引用C ++中的类成员?
从其他C来源的语言(如Java或C#)到C ++到来,这是起初很困惑的是C ++有三种方式来引用类的成员:a::b,a.b,和a-&gt;b。什么时候使用这些运算符中的哪一个? (注意:这本来是Stack Overflow的C ++ FAQ的一个条目。如果您想批评以这种形式提供FAQ的想法,那么在所有这些都开始的meta上的张贴将是这样做的地方。该问题在C ++聊天室中进行监控,该问题最初是从FAQ想法开始的,所以提出这个想法的人很可能会读懂您的答案。)
243 c++  c++-faq 

11
什么是使用最广泛的C ++向量/矩阵数学/线性代数库,以及它们的成本和收益之间的取舍?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 似乎许多项目慢慢地需要进行矩阵数学运算,并陷入了以下陷阱:首先构建一些矢量类,然后缓慢地添加功能,直到被发现构建一个半确定的自定义线性代数库并依赖它。 我想避免这种情况,同时又不依赖于某些切向相关的库(例如OpenCV,OpenSceneGraph)。 那里最常用的矩阵数学/线性代数库是什么,为什么会决定使用另一个?是否出于某些原因建议不要使用?我专门在几何/时间上下文*(2,3,4 Dim)*中使用它,但将来可能会使用更高维度的数据。 我正在寻找以下方面的差异:API,速度,内存使用,宽度/完整性,狭窄性/特异性,可扩展性和/或成熟度/稳定性。 更新资料 我最终使用了我非常满意的Eigen3。

15
C ++捕获所有异常
是否有Java的C ++等价物 try { ... } catch (Throwable t) { ... } 我正在尝试调试调用本机Windows函数的Java / jni代码,并且虚拟机不断崩溃。本机代码在单元测试中看起来不错,并且仅在通过jni调用时似乎崩溃。通用的异常捕获机制将被证明非常有用。
242 c++  exception 

14
指向类数据成员“ :: *”的指针
我遇到了一个编译正常的奇怪代码段: class Car { public: int speed; }; int main() { int Car::*pSpeed = &amp;Car::speed; return 0; } 为什么 C ++具有指向类的非静态数据成员的指针?什么是使用真正的代码,这个奇怪的指针?
242 c++  class  pointers  c++-faq 

1
std ::洗钱的目的是什么?
P0137引入了功能模板, std::launder并在有关并集,生存期和指针的部分中对标准进行了许多更改。 本文要解决的问题是什么?我必须了解的语言有哪些变化?那我们在做launder什么?

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.