草庐IT

arr_size

全部标签

c++ - std::size_t vs size_t vs std::string::size_type

size_t在哪里什么时候我什么都没有?总是假设size_t是否合理?==std::size_t?什么时候应该使用size_type在std容器(string::size_type、vector::size_type等)? 最佳答案 Wheredoessize_tcomefromwhenIdon'thaveanythingincludedinanemptyproject?如果您没有包含任何内容,则无法使用size_t.它在中定义(也可能在中,如果您的该header版本将定义放在全局命名空间以及std中)。Isitreasonable

c++ - 如何在不破坏代码的情况下正确修复 "zero-sized array in struct/union"警告(C4200)?

我正在将一些代码集成到我的库中。这是一个针对速度进行了优化的复杂数据结构,所以我尽量不要对其进行过多修改。集成过程进展顺利,实际上几乎完成(它编译)。一件事仍然困扰着我。我多次收到C4200警告:warningC4200:nonstandardextensionused:zero-sizedarrayinstruct/unionCannotgeneratecopy-ctororcopy-assignmentoperatorwhenUDTcontainsazero-sizedarray代码有效,但这个警告让我毛骨悚然(尤其是带有copy-ctor的部分)。由于这样声明的结构而出现警告:#

c++ - 如何在不破坏代码的情况下正确修复 "zero-sized array in struct/union"警告(C4200)?

我正在将一些代码集成到我的库中。这是一个针对速度进行了优化的复杂数据结构,所以我尽量不要对其进行过多修改。集成过程进展顺利,实际上几乎完成(它编译)。一件事仍然困扰着我。我多次收到C4200警告:warningC4200:nonstandardextensionused:zero-sizedarrayinstruct/unionCannotgeneratecopy-ctororcopy-assignmentoperatorwhenUDTcontainsazero-sizedarray代码有效,但这个警告让我毛骨悚然(尤其是带有copy-ctor的部分)。由于这样声明的结构而出现警告:#

c++ - C 和 C++ 中 arr[i] = i++ 和 i = i + 1 语句的行为

在C和C++语言中,arr[i]=i++;语句调用未定义的行为。为什么语句i=i+1;不会调用未定义的行为? 最佳答案 因为这最初是用c标记的和c++而不是任何特定版本,以下答案是对该问题的通用答案。但是,请注意c++,C++17起,行为发生了变化。请看这个answerbyBarrytoknowmore.对于声明arr[i]=i++;i的值在两个操作数RHS(右手边)和LHS(左手边)中使用,并且在其中一个中在这种情况下,值正在被修改(作为++后的副作用),其中没有sequencepoint在两者之间确定应该考虑i的哪个值。您也可以

c++ - C 和 C++ 中 arr[i] = i++ 和 i = i + 1 语句的行为

在C和C++语言中,arr[i]=i++;语句调用未定义的行为。为什么语句i=i+1;不会调用未定义的行为? 最佳答案 因为这最初是用c标记的和c++而不是任何特定版本,以下答案是对该问题的通用答案。但是,请注意c++,C++17起,行为发生了变化。请看这个answerbyBarrytoknowmore.对于声明arr[i]=i++;i的值在两个操作数RHS(右手边)和LHS(左手边)中使用,并且在其中一个中在这种情况下,值正在被修改(作为++后的副作用),其中没有sequencepoint在两者之间确定应该考虑i的哪个值。您也可以

c++ - 抛出异常后我可以信任 vector::size 吗?

我试图了解异常如何影响std::vector。更准确地说,我想在抛出内存不足异常时检查vector的大小。我的意思是这样的:std::vectorv;try{for(unsignedinti=0;i这是一个好方法还是我应该使用我的自变量来跟踪vector的大小? 最佳答案 来自thedocumentationforstd::vector::push_back:Ifanexceptionisthrown(whichcanbeduetoAllocator::allocate()orelementcopy/moveconstructor/

c++ - 抛出异常后我可以信任 vector::size 吗?

我试图了解异常如何影响std::vector。更准确地说,我想在抛出内存不足异常时检查vector的大小。我的意思是这样的:std::vectorv;try{for(unsignedinti=0;i这是一个好方法还是我应该使用我的自变量来跟踪vector的大小? 最佳答案 来自thedocumentationforstd::vector::push_back:Ifanexceptionisthrown(whichcanbeduetoAllocator::allocate()orelementcopy/moveconstructor/

c++ - sizeof(arr)/sizeof(arr[0]) 是如何工作的?

当我在for循环中寻找数组的大小时,我看到人们写过intarr[10];for(inti=0;isizeof(arr)/sizeof(arr[0])数组的长度如何?它在技术上是如何工作的? 最佳答案 如果你有一个array然后sizeof(array)返回数组占用的字节数。由于每个元素可能占用超过1个字节的空间,因此您必须将结果除以一个元素的大小(sizeof(array[0]))。这为您提供了数组中的元素数量。例子:std::uint32_tarray[10];autosizeOfInt=sizeof(std::uint32_t)

c++ - sizeof(arr)/sizeof(arr[0]) 是如何工作的?

当我在for循环中寻找数组的大小时,我看到人们写过intarr[10];for(inti=0;isizeof(arr)/sizeof(arr[0])数组的长度如何?它在技术上是如何工作的? 最佳答案 如果你有一个array然后sizeof(array)返回数组占用的字节数。由于每个元素可能占用超过1个字节的空间,因此您必须将结果除以一个元素的大小(sizeof(array[0]))。这为您提供了数组中的元素数量。例子:std::uint32_tarray[10];autosizeOfInt=sizeof(std::uint32_t)

node.js - 有没有人尝试使用 UV_THREADPOOL_SIZE 环境变量?

BenNoordhius在Nodev0.10.0中所做的更改之一是在Unix中“尊重UV_THREADPOOL_SIZE环境变量”。“threadpool.c”源文件似乎就是这样做的。如果我不设置这个env变量,我可以验证我被限制为4个线程的线程池,这是线程池的默认大小。但是我在我的Linux服务器上将此环境变量设置为64,然后重新启动Node,但我似乎仍然受到限制,似乎是大小为5的线程池?!这对任何人都有意义吗?谢谢! 最佳答案 看来您必须使用node命令或从node程序内部将其设置为var。像这样执行它:UV_THREADPOO