Questions tagged «c++»

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

12
指针与参考
给函数一个原始变量以供使用时,更好的做法是: unsigned long x = 4; void func1(unsigned long& val) { val = 5; } func1(x); 要么: void func2(unsigned long* val) { *val = 5; } func2(&x); 爱荷华州:有什么理由选择一个?

10
确定地图是否包含键值?
确定STL映射是否包含给定键值的最佳方法是什么? #include <map> using namespace std; struct Bar { int i; }; int main() { map<int, Bar> m; Bar b = {0}; Bar b1 = {1}; m[0] = b; m[1] = b1; //Bar b2 = m[2]; map<int, Bar>::iterator iter = m.find(2); Bar b3 = iter->second; } 在调试器中检查它,看起来就像iter是垃圾数据。 如果我取消注释此行: Bar b2 …
256 c++  stl  map 

15
C和C ++中的合并目的
我以前很舒服地使用过工会。今天,当我阅读这篇文章并得知此代码时,我感到震惊 union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // somewhere down the line, without any edit to pixel if(pixel.components.a) // accessing the non-active member ARGB::components …
254 c++  c  unions  type-punning 

14
内联函数在C ++中的好处?
在C ++中使用内联函数的优点/缺点是什么?我看到它只会提高编译器输出的代码的性能,但是使用当今优化的编译器,快速的CPU,巨大的内存等(不像1980年那样,当时内存不足,所有内容都必须容纳100KB内存),他们今天真的有优势吗?

4
如何将char数组转换为字符串?
string使用c_strstring函数然后将C ++ 转换为char数组非常简单strcpy。但是,该怎么做相反呢? 我有一个char数组,例如:char arr[ ] = "This is a test";要转换回: string str = "This is a test。
254 c++  string  char  arrays 

8
“解包”一个元组以调用匹配的函数指针
我正在尝试存储std::tuple各种数量的值,这些值稍后将用作与存储类型匹配的函数指针的调用的参数。 我创建了一个简化的示例,显示了我正在努力解决的问题: #include <iostream> #include <tuple> void f(int a, double b, void* c) { std::cout << a << ":" << b << ":" << c << std::endl; } template <typename ...Args> struct save_it_for_later { std::tuple<Args...> params; void (*func)(Args...); void delayed_dispatch() { // How can I "unpack" params to call func? …


3
构造函数初始化列表评估顺序
我有一个带有一些参数的构造函数。我以为它们是按照列出的顺序构造的,但是在一种情况下,看来它们是反向构造的,从而导致中止。当我反转参数时,程序停止中止。这是我使用的语法示例。事实是,在这种情况下,a_需要在b_之前初始化。能保证施工顺序吗? 例如 class A { public: A(OtherClass o, string x, int y) : a_(o), b_(a_, x, y) { } OtherClass a_; AnotherClass b_; };
252 c++  gcc  c++-faq 

9
初始化对象时,{0}是什么意思?
什么时候{0}用于初始化对象,这是什么意思?我在任何{0}地方都找不到引用,而且由于花括号,Google搜索没有帮助。 示例代码: SHELLEXECUTEINFO sexi = {0}; // what does this do? sexi.cbSize = sizeof(SHELLEXECUTEINFO); sexi.hwnd = NULL; sexi.fMask = SEE_MASK_NOCLOSEPROCESS; sexi.lpFile = lpFile.c_str(); sexi.lpParameters = args; sexi.nShow = nShow; if(ShellExecuteEx(&sexi)) { DWORD wait = WaitForSingleObject(sexi.hProcess, INFINITE); if(wait == WAIT_OBJECT_0) GetExitCodeProcess(sexi.hProcess, &returnCode); } 没有它,以上代码将在运行时崩溃。
252 c++  c 


8
如何使我的自定义类型与“基于范围的循环”一起使用?
如今,像许多人一样,我一直在尝试C ++ 11带来的不同功能。我的最爱之一是“基于范围的循环”。 我明白那个: for(Type& v : a) { ... } 等效于: for(auto iv = begin(a); iv != end(a); ++iv) { Type& v = *iv; ... } 这begin()只是a.begin()标准容器的返回。 但是,如果我想使我的自定义类型“基于范围的循环”,可以怎么办? 如果我只是专注begin()和end()? 如果我的自定义类型属于名称空间xml,则应该定义xml::begin()还是std::begin()? 简而言之,这样做的准则是什么?


7
如何将对象传递给C ++中的函数?
我是C ++编程的新手,但是我有Java的经验。我需要有关如何将对象传递给C ++函数的指导。 我是否需要传递指针,引用或非指针和非引用值?我记得在Java中没有这样的问题,因为我们只传递了保存对对象的引用的变量。 如果您还可以解释在哪里使用这些选项,那就太好了。

26
可以使用哪些技术来加快C ++的编译时间?
可以使用哪些技术来加快C ++的编译时间? 这个问题出现在Stack Overflow问题C ++编程风格的一些注释中,我很想听听那里有什么想法。 我看到一个相关的问题,为什么C ++编译需要这么长时间?,但这并没有提供很多解决方案。
249 c++ 


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.