Questions tagged «c++»

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



18
为什么C ++程序员应尽量减少对“新”的使用?
我在使用std :: list <std :: string>时偶然发现了std :: string的内存溢出问题内存泄漏,其中一条评论说: 停止使用new太多。我看不到您在任何地方使用新产品的任何原因。您可以在C ++中按值创建对象,这是使用该语言的巨大优势之一。 您不必在堆上分配所有内容。 不要像Java程序员那样思考。 我不确定他的意思。 为什么要在C ++中尽可能频繁地通过值创建对象,它在内部有什么不同? 我是否误解了答案?


11
用于测试Collat​​z猜想的C ++代码比手写汇编要快-为什么?
我用汇编语言和C ++语言为Euler Q14项目编写了这两种解决方案。它们是用于测试Collat​​z猜想的相同相同的蛮力方法。组装解决方案与 nasm -felf64 p14.asm && gcc p14.o -o p14 C ++使用 g++ p14.cpp -o p14 部件, p14.asm section .data fmt db "%d", 10, 0 global main extern printf section .text main: mov rcx, 1000000 xor rdi, rdi ; max i xor rsi, rsi ; i l1: dec rcx …

30
修剪std :: string的最佳方法是什么?
我目前正在使用以下代码对std::strings程序中的所有内容进行右修剪: std::string s; s.erase(s.find_last_not_of(" \n\r\t")+1); 它可以正常工作,但我想知道是否存在某些可能会失败的最终情况? 当然,我们欢迎您提供其他优雅的解决方案以及左修剪解决方案。
812 c++  trim  stdstring 


4
T &&(双“&”号)在C ++ 11中是什么意思?
我一直在研究C ++ 11的一些新功能,而我注意到的一个是在声明变量(如)时使用了双“&”号T&& var。 首先,这只野兽叫什么?我希望Google允许我们搜索这样的标点符号。 这到底是什么意思? 乍一看,它似乎是一个双重引用(如C样式的双指针T** var),但是我很难考虑到这种情况的用例。


25
如何将std :: string转换为小写?
我想将A转换std::string为小写。我知道该函数tolower(),但是在过去,我对该函数存在问题,无论如何它都不是理想的选择,因为与a std::string一起使用需要对每个字符进行迭代。 有没有一种替代方法可以100%地起作用?

7
push_back和emplace_back
我对push_back和之间的区别感到困惑emplace_back。 void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); 由于有一个push_back重载引用右值引用,我不太明白它的目的是emplace_back什么?

2
当正好遍历8192个元素时,为什么我的程序运行缓慢?
这是有问题的程序的摘录。矩阵img[][]的大小为SIZE×SIZE,并初始化为: img[j][i] = 2 * j + i 然后,创建一个矩阵res[][],并将此处的每个字段作为img矩阵中周围9个字段的平均值。为简单起见,边框保留为0。 for(i=1;i<SIZE-1;i++) for(j=1;j<SIZE-1;j++) { res[j][i]=0; for(k=-1;k<2;k++) for(l=-1;l<2;l++) res[j][i] += img[j+l][i+k]; res[j][i] /= 9; } 这就是程序的全部内容。为了完整起见,这是之前的内容。之后没有代码。如您所见,这只是初始化。 #define SIZE 8192 float img[SIZE][SIZE]; // input image float res[SIZE][SIZE]; //result of mean filter int i,j,k,l; for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) img[j][i] = (2*j+i)%8196; 基本上,当SIZE为2048的倍数时,该程序运行缓慢,例如执行时间: SIZE = 8191: 3.44 secs …

12
std :: wstring VS std :: string
我无法理解之间的差异std::string和std::wstring。我知道wstring支持宽字符,例如Unicode字符。我有以下问题: 我什么时候应该std::wstring用完std::string? 可以std::string容纳整个ASCII字符集,包括特殊字符吗? 是std::wstring由所有流行的C ++编译器的支持? 什么是“ 宽字符 ”?
740 c++  string  unicode  c++-faq  wstring 



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.