Questions tagged «c++»

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


7
字符串中最优化的串联方式
我们总是每天遇到很多情况,其中我们必须在代码中执行繁琐的字符串操作。我们都知道,字符串操作是昂贵的操作。我想知道哪个是可用版本中最便宜的。 最常见的操作是串联(这可以在某种程度上控制)。在C ++中串联std :: strings的最佳方法是什么,以及各种加速串联的解决方法? 我的意思是, std::string l_czTempStr; 1).l_czTempStr = "Test data1" + "Test data2" + "Test data3"; 2). l_czTempStr = "Test data1"; l_czTempStr += "Test data2"; l_czTempStr += "Test data3"; 3). using << operator 4). using append() 另外,相对于std :: string,使用CString有什么好处吗?

6
如何检查是否设置了std :: string?
如果使用char*,我可以将其初始化为NULL,然后通过比较来检查它是否被设置。如何做一个相同的事情std::string?如何检查字符串是否设置? 编辑:如果我设置为字符串也为空怎么办?我是否必须使用其他标志来检查是否std::string设置了?
72 c++ 

19
无法打开输出文件,权限被拒绝
因此,在尝试使用CodeBlocks编译C ++代码时,我总是收到此错误。 无法打开输出文件[filename.exe]权限被拒绝 它只是从今天开始,并且是零星的和不一致的。如果我关闭CodeBlocks并重新启动项目,通常会消失,但并非总是如此。有时我按几次F9(build&run)甚至消失了。我总是检查任务管理器,但是从来没有任何运行过.EXE的文件名或与之相关的文件。 我还注意到,如果发生此问题,然后尝试手动删除.EXE或与之交互,Windows会告诉我我需要管理员权限(这是一台私人PC,据我所知是管理员)。 第一次发生时,除了先前版本中的内容外,我添加到代码中的唯一一件事是发送给cout的调试报告-几乎没有什么奥秘的东西。即使以前的代码没有更改,有时也会发生。 这可能是什么?它并没有打破游戏规则,但是很烦人,我希望它不会变得更糟。 编辑:到目前为止,这已经很老了,但是以防万一其他人遇到类似的问题,我当前使用的解决方法是在尝试再次运行代码之前,始终删除[filename.exe]。尽管这很烦人,但是可以避免该问题。


5
C ++是否具有npm,pip,gem等软件包管理器?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 1年前关闭。 改善这个问题 只是想知道安装cpp软件包的最佳方法。我的背景是JS / Ruby / etc,所以似乎很奇怪,没有cpm。我想念什么?我认为这不是那么简单... 举一个例子,我甚至无法运行具有.cpp文件#include <iostream>,因为我得到fatal error: 'iostream' file not found 为了清楚起见,iostream进行编辑:这是一个不好的例子,当我写这篇文章时,我的系统配置被眨眼了。用非标准库将其替换,这在您的想象中。
72 c++  macos 

10
使用std :: vector作为原始内存的视图
我正在使用一个外部库,该库有时会给我一个指向整数和大小数组的原始指针。 现在,我想std::vector用来访问和修改这些值,而不是使用原始指针访问它们。 这是一个解释这一点的人工示例: size_t size = 0; int * data = get_data_from_library(size); // raw data from library {5,3,2,1,4}, size gets filled in std::vector<int> v = ????; // pseudo vector to be used to access the raw data std::sort(v.begin(), v.end()); // sort raw data in place for (int i = 0; …
71 c++  c++11  vector  stdvector 

5
为什么sizeof(unsigned double)等于4?
我的一个同事问是否有未签名的double,但我说没有,但我仍然检查了一下,并且可以在Microsoft Visual C ++ 2010中进行编译: unsigned double a; double b; printf("size_a=%d size_b=%d", (int) sizeof(a), (int) sizeof(b)); 它输出size_a=4 size_b=8。也就是说,的四个字节unsigned double,的八个字节double。


8
Endianness什么时候成为一个因素?
据我了解,字节序是指组成多字节字的字节的顺序不同,至少在最典型的情况下如此。这样16位整数可以存储为0xHHLL或0xLLHH。 假设我没有记错,我想知道的是,Endianness何时成为在两台计算机之间(Endian可能不同)的主要因素,而Endian可能不同。 如果我以char数组的形式传输短整数1,并且没有进行任何更正,是否接收并将其解释为256? 如果我使用以下代码分解和重新组合短整数,则字节序将不再是一个因素吗? // Sender: for(n=0, n < sizeof(uint16)*8; ++n) { stl_bitset[n] = (value >> n) & 1; }; // Receiver: for(n=0, n < sizeof(uint16)*8; ++n) { value |= uint16(stl_bitset[n] & 1) << n; }; 是否存在补偿字节序的标准方法? 提前致谢!

3
C和C ++:自动结构的部分初始化
例如,如果somestruct有三个整数成员,我一直认为可以在C(或C ++)函数中执行此操作: somestruct s = {123,}; 第一个成员将初始化为123,后两个成员将初始化为0。我经常对自动数组执行相同的操作,编写 int arr[100] = {0,};该函数,以便将数组中的所有整数都初始化为零。 最近,我读了《GNU C参考手册》中: 如果不初始化结构变量,则效果取决于它是否具有静态存储(请参见存储类说明符)。如果是,则将整数类型的成员初始化为0,将指针成员初始化为NULL;否则,将其初始化为NULL。否则,结构成员的值是不确定的。 有人可以告诉我有关部分自动结构和自动数组初始化的C和C ++标准怎么说?我在Visual Studio中完成上面的代码没有问题,但是我想与gcc / g ++以及其他编译器兼容。谢谢
71 c++  c 

2
C ++ 11初始化程序列表失败-但仅在长度为2的列表上
我找到了一个模糊的日志记录错误,发现长度为2的初始化列表似乎是特例!这怎么可能? 该代码是使用Apple LLVM 5.1版(clang-503.0.40)编译的CXXFLAGS=-std=c++11 -stdlib=libc++。 #include <stdio.h> #include <string> #include <vector> using namespace std; typedef vector<string> Strings; void print(string const& s) { printf(s.c_str()); printf("\n"); } void print(Strings const& ss, string const& name) { print("Test " + name); print("Number of strings: " + to_string(ss.size())); for (auto& s: ss) { auto t …

2
C和C ++关于++运算符的区别
我一直在鬼混一些代码,看到一些我不理解的“原因”。 int i = 6; int j; int *ptr = &i; int *ptr1 = &j j = i++; //now j == 6 and i == 7. Straightforward. 如果将运算符放在等号左侧怎么办? ++ptr = ptr1; 相当于 (ptr = ptr + 1) = ptr1; 而 ptr++ = ptr1; 相当于 ptr = ptr + 1 = …
71 c++  c  increment  prefix 


7
Linux上的memcpy性能不佳
我们最近购买了一些新服务器,并且内存性能不佳。与我们的笔记本电脑相比,服务器的memcpy性能要慢3倍。 服务器规格 底盘和主板:SUPER MICRO 1027GR-TRF CPU:2个Intel Xeon E5-2680 @ 2.70 Ghz 内存:8x 16GB DDR3 1600MHz 编辑:我也在具有更高规格的另一台服务器上进行测试,并看到与上述服务器相同的结果 服务器2规格 底盘和主板:SUPER MICRO 10227GR-TRFT CPU:2个Intel Xeon E5-2650 v2 @ 2.6 Ghz 内存:8x 16GB DDR3 1866MHz 笔记本电脑规格 底盘:联想W530 CPU:1个Intel Core i7 i7-3720QM @ 2.6Ghz 内存:4x 4GB DDR3 1600MHz 操作系统 $ cat /etc/redhat-release Scientific Linux release …
71 c++  c  linux  memcpy  numa 

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.