草庐IT

int_member

全部标签

c++ - 新分配的 std::vector<int> 元素是否初始化为 0?

假设我们使用std::vector或std::vector.随着vector大小的增长,新分配的元素会被默认初始化为0,还是程序员需要显式地将它们初始化为0? 最佳答案 新元素是值初始化的:[C++11:23.3.6.3/9]:voidresize(size_typesz);Effects:Ifsz,equivalenttoerase(begin()+sz,end());.Ifsize(),appendssz-size()value-initializedelementstothesequence.对于int和long这意味着0:[

c++ - 计算出保存一个 int 需要多少字节的算法

很抱歉提出这个愚蠢的问题,但我将如何通过数学或使用C++计算出存储一个整数需要多少字节。 最佳答案 如果你的意思是来自informationtheory的观点,那么简单的答案是:log(number)/log(2)(它们是自然数、二进制数还是普通数都无关紧要logarithms,因为除以log(2),它计算以2.)这会报告存储您的号码所需的位数。如果您对在特定语言或环境中有效或通常编码您的数字需要多少内存感兴趣,您需要做有些研究。:)整数的典型C和C++范围是:char1byteshort2bytesint4byteslong8by

c++ - 如何将 vector<int> 转换为 int*

我必须维护一个自2004年以来就没有人碰过的程序。classCSolver{...ClauseIdxadd_clause(int*lits,intn_lits);}voidand2(CSolver&solver){vectorlits;...solver.add_clause(lits.begin(),lits.size());}编译器提示:error:nomatchingfunctionforcallto‘CSolver::add_clause(__gnu_cxx::__normal_iterator>>,size_t)’我试着施放它solver.add_clause((int*)l

c++ - *(int*) 在 C++ 中是什么意思?

我在OpenGL教程中遇到了以下行,我想知道*(int*)是什么意思,它的值是什么if(*(int*)&(header[0x1E])!=0) 最佳答案 让我们一步一步来:header[0x1E]header必须是某种数组,这里我们获取对数组中第0x1E元素的引用。&(header[0x1E])我们获取该元素的地址。(int*)&(header[0x1E])我们将该地址转换为指向int的指针。*(int*)&(header[0x1E])我们取消引用指向int的指针,通过解释header的第一个sizeof(int)字节产生一个int,

c++ - 为什么我不能将 std::begin/std::end 与 int(*p)[3] 一起使用,而我可以与 int(&p)[3] 一起使用?

这个有效:voidfoo(int(&a)[3]){autoibegin=begin(a);autoebegin=end(a);}虽然这不是:voidfoo(int(*a)[3]){autoibegin=begin(a);autoebegin=end(a);}我认为int(&a)[3]和int(*a)[3]是同一个意思! 最佳答案 您的代码类似于:voidfoo(vector&a){autoibegin=begin(a);autoebegin=end(a);}voidfoo(vector*a){autoibegin=begin(a);

c++ - 在 C++ 中,我希望我的接口(interface) .h 说 int GetSomeInt() const;.... 但实际上方法 *DOES* 更新 "this"。

我正在向const方法添加一些惰性初始化逻辑,这使得该方法实际上不是const。有没有办法让我不必从公共(public)界面中删除“const”就可以做到这一点?intMyClass::GetSomeInt()const{//lazylogicif(m_bFirstTime){m_bFirstTime=false;Dosomethingonce}returnsomeint...}编辑:“可变”关键字在这里起作用吗? 最佳答案 使m_bFirstTime可变:classMyClass{::mutableboolm_bFirstTime

c++ - 如何将 int 映射到 C/C++ 中的相应字符串

我有20位数字,我想将它们与字符串相关联。除了使用switchcase语句来实现这一点之外,还有更快的方法吗?我需要将一个int转换为相应的字符串,数字不一定是压缩的。Qt中的一些代码也可能有用吗?例子:下面的数字和字符串是相互关联的,1:"RequestSystemInfo"2:"ChangeSystemInfo"10:"UnkownError" 最佳答案 我推荐std::map#include#includestd::mapmapping;//Initializethemapmapping.insert(std::make_pa

c++ - 我可以使用 i++ 语法将 int i 增加一个以上吗?

intfkt(int&i){返回我++;intmain(){inti=5;printf("%d",fkt(i));printf("%d",fkt(i));printf("%d",fkt(i));}打印“567”。假设我想像这样打印“579”,是否可以在fkt()中没有临时变量的情况下以类似的方式进行打印?(临时变量会略微降低效率,对吗?)即,类似returni+=2或returni,i+=2;这两个都是先增加i然后返回它,这不是我需要的。谢谢编辑:主要原因是,我在一个函数中而不是在外部执行它是因为fkt将是一个函数指针。原始函数将用i做其他事情。我只是觉得使用{inttemp=i;我+

c++ - 在 C++ 中获取 int 的十进制表示长度的最佳方法是什么?

最好的写作方式是什么intNumDigits(intn);在C++中,它将返回输入的十进制表示形式的位数。例如11->2,999->3,-1->2等等 最佳答案 简单明了,独立于sizeof(int):intNumDigits(intn){intdigits=0;if(n 关于c++-在C++中获取int的十进制表示长度的最佳方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

C++ 错误 : request for member '...' in 'grmanager' which is of non-class type 'GraphicsManager'

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我的类GraphicsManager出现错误。图形管理器.cpp:#include"C:\Users\ChrisUzzolina\Desktop\obj\include\GraphicsManager.h"#include#includeGraphicsManager::GraphicsManager(intSCREEN_WIDTH,intSCREEN_