Questions tagged «c++»

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

14
如何查找C ++ std :: map中是否存在给定键
我正在尝试检查给定键是否在地图中,但有些无法做到: typedef map<string,string>::iterator mi; map<string, string> m; m.insert(make_pair("f","++--")); pair<mi,mi> p = m.equal_range("f");//I'm not sure if equal_range does what I want cout << p.first;//I'm getting error here 所以我怎么打印p中的内容?
449 c++  dictionary  stl 

28
理解指针的障碍是什么?如何克服这些障碍?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 为什么对于许多新的甚至老的C或C ++大学水平的学生来说,指针是导致混乱的主要因素?是否有任何工具或思维过程可以帮助您了解指针在变量,函数以及更高级别上的工作方式? 有什么好的做法可以使某人达到“啊哈,我明白了”的程度,而又不会使他们陷入整体观念的泥潭?基本上,像钻探一样的场景。
449 c++  c  pointers 


5
“ STL”和“ C ++标准库”有什么区别?
有人引起了我的注意,这篇文章声称(我的意思是) STL术语被误用来指代整个C ++标准库,而不是指从SGI STL中获得的部分。 (...)它指的是“ STL”,尽管实际上仍然很少有人使用STL(这是SGI设计的)。 C ++标准库的某些部分是基于STL的,因此很多人(包括数位作者和臭名昭著的cplusplus.com)仍然将这些部分称为“ STL”。但是,这是不准确的。实际上,C ++标准从不提及“ STL”,并且两者之间存在内容差异。 (...)“ STL”很少用于指代基于SGI STL的stdlib的位。人们认为这是整个标准库。它被放在简历上。这是一种误导。 我几乎不了解C ++的历史,因此我无法判断本文的正确性。我应该避免使用术语STL吗?还是这是一个孤立的意见?

6
如果我针对大小而不是速度进行优化,为什么GCC会生成15-20%的更快代码?
我在2009年首先注意到,如果我对大小(-Os)而不是速度(-O2或-O3)进行优化,那么GCC(至少在我的项目和我的机器上)倾向于生成明显更快的代码,而我一直在想为什么。 我设法创建了(相当愚蠢的)代码来显示这种令人惊讶的行为,并且足够小,可以在此处发布。 const int LOOP_BOUND = 200000000; __attribute__((noinline)) static int add(const int& x, const int& y) { return x + y; } __attribute__((noinline)) static int work(int xval, int yval) { int sum(0); for (int i=0; i<LOOP_BOUND; ++i) { int x(xval+sum); int y(yval+sum); int z = add(x, y); sum += z; …

11
静态常量字符串(类成员)
我想要一个类的私有静态常量(在这种情况下是形状工厂)。 我想要些类似的东西。 class A { private: static const string RECTANGLE = "rectangle"; } 不幸的是,我从C ++(g ++)编译器中收到各种错误,例如: ISO C ++禁止初始化成员“ RECTANGLE” 非整数类型'std :: string'的静态数据成员的无效的类内初始化 错误:将“ RECTANGLE”设为静态 这告诉我,这种成员设计不符合该标准。您如何在没有使用#define指令的情况下拥有私有文字常量(或可能是公共常量)(我想避免数据全局性的丑陋!) 任何帮助表示赞赏。
444 c++  string  class  static  const 


13
usr / bin / ld:找不到-l <nameOfTheLibrary>
我正在尝试编译我的程序,它返回此错误: usr/bin/ld: cannot find -l&lt;nameOfTheLibrary&gt; 在我的makefile文件中,我使用命令g++并链接到我的库,这是到我的库的另一个目录的符号链接。 是否可以添加选项以使其正常工作?
443 c++  linux  g++ 

12
Linux的本机GUI API是什么?
我希望这不会成为一个愚蠢的问题,但这始终是我一直想知道的事情。Windows(Win32 API)和OS X(Cocoa)都有自己的API,可以处理窗口,事件和其他OS内容。对于Linux的等效功能,我从未真正有明确的答案。 我听说有人说GTK +,但是GTK +是跨平台的,怎么会是本地的呢?
441 c++  c  linux  api  user-interface 

9
错误:请求“ ..”中的成员“ ..”属于非类类型
我有一个带有两个构造函数的类,一个不带参数,而一个带一个参数。 使用接受一个参数的构造函数创建对象的工作符合预期。但是,如果我使用不带参数的构造函数创建对象,则会出现错误。 例如,如果我编译此代码(使用g ++ 4.0.1)... class Foo { public: Foo() {}; Foo(int a) {}; void bar() {}; }; int main() { // this works... Foo foo1(1); foo1.bar(); // this does not... Foo foo2(); foo2.bar(); return 0; } ...我收到以下错误: nonclass.cpp: In function ‘int main(int, const char**)’: nonclass.cpp:17: error: request for member …
439 c++ 

30
C ++中的struct和class有什么区别?
这个问题已经在C#/。Net上下文中提出过。 现在,我想学习C ++中的结构和类之间的区别。请讨论技术差异以及在OO设计中选择一个或另一个的原因。 我将从一个明显的区别开始: 如果不指定public:或private:,则默认情况下结构的成员是公共的;默认情况下,类的成员是私有的。 我确信在C ++规范的晦涩之处可以找到其他差异。
439 c++  oop  class  struct  c++-faq 


6
使用std :: forward的主要目的是什么,它可以解决哪些问题?
在完善的转发,std::forward是用来转换指定的右值引用t1,并t2以不具名rvalue引用。这样做的目的是什么?inner如果我们将t1&保留t2为左值,对调用的函数有何影响? template &lt;typename T1, typename T2&gt; void outer(T1&amp;&amp; t1, T2&amp;&amp; t2) { inner(std::forward&lt;T1&gt;(t1), std::forward&lt;T2&gt;(t2)); }


6
GCC -fPIC选项
我已经阅读了GCC的代码生成约定选项,但不了解“生成与位置无关的代码(PIC)”的含义。请举一个例子来解释我的意思。
437 c++  gcc  options  fpic 

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.