Questions tagged «c++»

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


2
现代C ++可以免费为您提供性能吗?
有时有人声称C ++ 11/14可以提高性能,即使仅编译C ++ 98代码也可以。理由通常是根据移动语义的,因为在某些情况下,右值构造函数是自动生成的,或者现在是STL的一部分。现在,我想知道以前是否已经通过RVO或类似的编译器优化处理了这些情况。 然后我的问题是,是否可以给我一个C ++ 98代码的实际示例,该示例无需修改即可使用支持新语言功能的编译器更快地运行。我确实理解不需要标准兼容的编译器来执行复制省略,仅由于这个原因,移动语义可能会带来速度,但是如果您愿意,我希望看到一种病态较少的情况。 编辑:为了清楚起见,我不是在问新的编译器是否比旧的编译器快,而是如果有代码将-std = c ++ 14添加到我的编译器标志中,它将运行得更快(避免复制,但是如果您除了移动语义之外,还可以提出其他建议,我也很感兴趣)

15
C ++显示堆栈异常跟踪
如果抛出异常,我想有一种向用户报告堆栈跟踪的方法。做这个的最好方式是什么?是否需要大量的额外代码? 回答问题: 我希望它可以携带。我希望弹出信息,因此如果出现错误,用户可以复制堆栈跟踪并通过电子邮件发送给我。


16
如何将wstring转换为string?
问题是如何将wstring转换为string? 我有下一个例子: #include <string> #include <iostream> int main() { std::wstring ws = L"Hello"; std::string s( ws.begin(), ws.end() ); //std::cout <<"std::string = "<<s<<std::endl; std::wcout<<"std::wstring = "<<ws<<std::endl; std::cout <<"std::string = "<<s<<std::endl; } 带有注释行的输出是: std::string = Hello std::wstring = Hello std::string = Hello 但不只是: std::wstring = Hello 示例中有什么问题吗?我可以进行上述转换吗? 编辑 新的示例(考虑了一些答案)是 #include <string> #include …
204 c++  unicode  stl  wstring 

13
C#和Java…中的泛型与C ++中的模板之间有什么区别?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我主要使用Java,泛型相对较新。我一直在阅读Java做出了错误的决定,或者.NET具有更好的实现等。 那么,C ++,C#,Java在泛型之间的主要区别是什么?每个优点/缺点?
203 c#  java  c++  generics  templates 

12
什么是内存碎片?
我听说过在C ++动态内存分配中使用“内存碎片”一词的次数。我发现了一些有关如何处理内存碎片的问题,但是找不到直接解决它本身的问题。所以: 什么是内存碎片? 如何判断内存碎片是否对我的应用程序造成问题?哪种程序最有可能受到影响? 有什么好的常见方法可以处理内存碎片? 也: 我听说很多使用动态分配会增加内存碎片。这是真的?在C ++的上下文中,我了解所有标准容器(std :: string,std :: vector等)都使用动态内存分配。如果在整个程序中都使用了它们(尤其是std :: string),那么内存碎片是否更可能成为问题? 在STL繁重的应用程序中如何处理内存碎片?

18
在C ++中使用“ super”
我的编码风格包括以下成语: class Derived : public Base { public : typedef Base super; // note that it could be hidden in // protected/private section, instead // Etc. } ; 这使我可以将“ super”用作Base的别名,例如,在构造函数中: Derived(int i, int j) : super(i), J(j) { } 甚至当从基类的重写版本中调用该方法时: void Derived::foo() { super::foo() ; // ... And then, do …
203 c++  coding-style 

10
进程何时获得SIGABRT(信号6)?
进程在C ++中获得SIGABRT的场景是什么?该信号是否始终来自进程内部,或者可以从一个进程发送到另一个进程? 有没有办法确定哪个进程正在发送此信号?
202 c++  sigabrt 





6
类型不完整的std :: unique_ptr无法编译
我在使用pimpl惯用语std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; 但是,我在第304行中遇到了有关使用不完整类型的编译错误<memory>: 无效的将' sizeof'应用于不完整的类型' uixx::window::window_impl' 据我所知,std::unique_ptr应该可以使用不完整的类型。这是libc ++中的错误,还是我在这里做错了?

12
在STL映射中,使用map :: insert比[]更好吗?
前一段时间,我与一位同事讨论了如何在STL 映射中插入值。我更喜欢, map[key] = value; 因为它感觉自然并且易于阅读,而他更喜欢 map.insert(std::make_pair(key, value)) 我只是问他,我们俩都不记得插入效果更好的原因,但是我确信这不仅是样式偏好,还有技术上的原因,例如效率。在SGI STL参考只是说“严格地说,这个成员函数是不必要的:它的存在只是为了方便。” 谁能告诉我这个原因,还是我只是梦想有一个原因?
201 c++  stl  map  stdmap 

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.