草庐IT

GUARD_BAND_SIZE_BYTES

全部标签

c++ - 为什么他用 "typedef vector<double>::size_type"而不是用 "int"

我刚刚学习C++,并且正在使用AcceleratedC++。在一个vector例子中,作者使用了如下代码;typedefvector::size_typevec_sz;vec_szsize=homework.size;我知道typedefvector::size_typevec_sz;这样他就不必将下一个命令写成vector::size_typesize=homework.size;,但我的问题是他为什么不直接声明size改为整数?intsize=homework.size;这是因为我们使用了vector吗?如果是这样,是否意味着vector迭代器返回的值不能存储在常规变量中?

c++ - 谁能举例说明为什么使用 size_t 类型?

我想知道为什么在我可以使用sayint类型的地方使用这个size_t。据说size_t是sizeof运算符的返回类型。这是什么意思?就像如果我使用sizeof(int)并将其返回的内容存储到int类型变量中,那么它也可以工作,没有必要将它存储在size_t类型变量。我只是想清楚地知道使用size_t的基本概念和一个清晰易懂的例子。谢谢 最佳答案 size_t保证能够表示可能的最大尺寸,int则不然。这意味着size_t更便携。例如,如果int最多只能存储255,但您可以分配5000字节的数组怎么办?显然这行不通,但是使用size_t

c++ - uintptr_t 和 size_t 相同吗?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:size_tvs.intptr_t我的一些代码处理指针并将uintptr_t作为输入,因为它必须使用指针。我现在必须对整数做同样的事情,所以我想重用该代码。size_t和uintptr_t一样吗?我是否可以通过将uintptr_t替换为size_t来更改实现并对指针和整数使用相同的代码?

c++ - push_back() 和 resize(size()+1) 有区别吗

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。通过执行以下任一操作,可以扩展标准vector以容纳更多成员:std::vectorv;v.push_back(1);或intos=v.size();v.resize(os+1);v[os]=1;除了使用push_back()的代码简洁之外,还有其他区别吗?例如,一种比另一种更有效,还是在每种情况下分配的额外内存不同?

c++ - 无法解析 Eclipse 类型 size_t 中的 Android NDK

我在androidndk项目上收到以下错误:“Type'size_t'couldnotberesolved”,但我已经添加了库路径:/Users/ademar/android-ndk-r8e/platforms/android-8/arch-arm/usr/include/Users/ademar/android-ndk-r8e/sources/cxx-stl/stlport/stlport/Users/ademar/android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.7/include所以我不明白为什么会出现这个错误。出现错误的代码:sta

c++ - 如何在不违反 const 正确性的情况下使用 std::lock_guard?

在一个子类中,我有一个私有(private)的std::mutexm字段,我在基类纯虚方法的实现中使用它以线程安全的方式返回一个值(值可以由另一个线程更新):intSubClass::get()const//implements'virtualintget()=0const'ofthebaseclass{std::lock_guardlck(m);returnvalue;}编译器通过产生错误告诉我这违反了const正确性:error:binding'conststd::mutex'toreferenceoftype'std::lock_guard::mutex_type&{akastd

c++ - size_t 在 C++ 中转换/转换为字符串

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtoconvertanumbertostringandviceversainC++如何在C++中将整数值转换为string?这是我试过的:for(size_ti=0;vecServiceList.size()>i;i++){if(!vecServiceList[i].empty()){stringsService="\t"+i+"."+vecServiceList[i];}}这里是错误:invalidoperandsoftypes'constchar*'and'constchar[3]'tobinary

c++ - 为什么我需要在 C++ 中使用 `size_t`?

作为初学者,我对size_t真的很困惑。我可以使用int、float或其他类型。为什么还要声明size_t类型。我感觉不到它的优点。我看过一些pages,但我仍然无法理解。 最佳答案 它的主要优点是它是完成这项工作的正确工具。size_t按字面定义为足够大以表示您平台上任何对象的大小。其他人不是。所以,当您想存储对象的大小时,为什么要使用其他东西?如果您愿意,可以使用int,但您会故意选择导致错误的劣势选项。我不太明白您为什么要这样做,但这是您的代码。不过,如果您选择使用float,请告诉我们您正在编写什么程序,以便我们避免使用它。

c++ - 为什么 std::string::max_size 的值是 "strange"?

我在看std::string::max_size并注意到这个例子:#include#includeintmain(){std::stringstr("Teststring");std::cout输出:max_size:4294967291但是,我一直认为这个限制是由于无符号整数/size_t的最大值造成的-所以我有点希望它是2^32-1也就是4294967295。为什么此示例中的最大大小不使用这4个字节?我还尝试运行示例代码,在那台机器上它是2^62-这又让我感到困惑,为什么不是2^64-1代替?总的来说,我想知道,实现不会使用所有空间的原因是什么? 最佳答

c++ - #ifdef/#define Include-Guard 之前的#include 可以吗?

我总是将我的#include放在#ifdef/#defineInclude-Guard之后。现在我的IDE(QtCreator)的重构机制将它放在Include-Guard之前,例如#include"AnotherHeader.h"#ifndefMYHEADER_H#defineMYHEADER_H这会导致任何问题吗?或者我可以这样吗? 最佳答案 如果有问题的header本身包含守卫,您就不会遇到问题。将它放在includeguards中可能仍会加快编译速度。编译器看不到的东西编译时间更短,即使它不会产生任何错误。