草庐IT

PIX_SIZE

全部标签

c++ - std::u16string、std::u32string、std::string、length()、size()、码点和字符

我很高兴在C++11中看到std::u16string和std::u32string,但我想知道为什么没有std::u8string来处理UTF-8的情况。我的印象是std::string是为UTF-8设计的,但它似乎做得不太好。我的意思是,std::string.length()是否仍然返回字符串缓冲区的大小而不是字符串中的字符数?那么,如何为新的C++11类定义标准字符串的length()方法?它们是否返回字符串缓冲区的大小、代码点数或字符数(假设代理对是2个代码点,但只有一个字符。如果我错了,请纠正我)?那么size();它不等于length()吗?见http://en.cppr

c++ - 在数组迭代器中使用 size_t

我最近了解到,引入size_t是为了帮助面向future的代码防止native位数增加和可用内存增加。具体的使用定义好像是关于存储某个东西的大小,一般是数组。我现在一定想知道这种future的证明应该走多远。如果下一个迭代数组的任务使用unsignedint作为索引数组,那么使用面向future和适当大小的size_t定义数组长度当然是没有意义的:void(double*vector,size_tvectorLength){for(unsignedinti=0;i事实上,在这种情况下,我可能希望严格的语法应该将unsignedint上转换为关系运算符的size_t。这是否意味着迭代器变

c++ - 否定 size_t (即 `-sizeof(struct foo)` ))会发生什么?

我正在处理一些包含表单表达式的代码-(sizeof(structfoo))即size_t的否定,我不清楚C和C++标准对编译器的要求是什么。具体来说,通过查看这里和其他地方,sizeof返回类型为size_t的无符号整数值。在否定无符号整数时,我找不到指定行为的任何明确引用。有没有,如果有,是什么?编辑:好的,所以关于无符号类型的算术有一些很好的答案,但不清楚这实际上是否如此。当这否定时,它是对无符号整数进行操作,还是转换为有符号类型并对其进行处理?从标准中期望的行为是“想象它是相似幅度的负数,然后对无符号值应用'溢出'规则”? 最佳答案

c++ - 将字符串转换为 size_t

有没有办法将std::string转换为size_t?问题是size_t是平台依赖类型(而它是sizeof的结果)。所以,我不能保证将string转换为unsignedlong或unsignedint会正确。编辑:一个简单的案例是:std::cout>input;size_tindex=string_to_size_t(input);//Workwithindextodosomething 最佳答案 你可以使用std::stringstreamstd::stringstring="12345";std::stringstreamss

mongodb - 设置 MongoDB 数据库配额 (SIZE)

我想允许我的共享主机站点使用MongoDB,但是由于它们都在同一个VPS服务器上,我可以让mongo创建数据库,并将它们分配给用户,但我似乎无法限制数据库的大小只是集合的大小。可以更改。是否以管理员身份限制数据库的大小。 最佳答案 MongoDB分配数据库block,从64MB(dbname.0)开始,然后是128MB(.1)、256等,直到2GB,然后每个文件从那里开始是2GB。如果您在mongod.exe命令行参数中使用--smallfiles,则文件分配从16MB而不是64MB开始,最大为512MB而不是2GB。将此与--qu

mongodb - 设置 MongoDB 数据库配额 (SIZE)

我想允许我的共享主机站点使用MongoDB,但是由于它们都在同一个VPS服务器上,我可以让mongo创建数据库,并将它们分配给用户,但我似乎无法限制数据库的大小只是集合的大小。可以更改。是否以管理员身份限制数据库的大小。 最佳答案 MongoDB分配数据库block,从64MB(dbname.0)开始,然后是128MB(.1)、256等,直到2GB,然后每个文件从那里开始是2GB。如果您在mongod.exe命令行参数中使用--smallfiles,则文件分配从16MB而不是64MB开始,最大为512MB而不是2GB。将此与--qu

c++ - size_t 与 unsigned int 相比的大小

有谁知道size_t的最大值小于unsignedint的最大值的任何工具链/平台/目标组合?我认为C和C++标准原则上都允许这样做,并且它可能(理论上)在一些奇怪的MCU上有用,但我在实践中从未见过这种情况。注意:我故意用c和c++标记了这个,因为我对这两种语言的答案很感兴趣(如果你的答案是特定于语言的,请这样说)而且我还没有看到任何使用不同大小的工具链/目标组合无论如何都要输入c和c++。 最佳答案 H8/300可以配置为。使用GCC(配置了三重h8300-elf或h8300-rtems),这是-mint32标志:gcc/conf

c++ - 为什么 std::count(_if) 返回 iterator::difference_type 而不是 size_t?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhydoestheC++standardalgorithm“count”returnaptrdiff_tinsteadofsize_t?标准C++中有std::count/std::count_if算法。templatetypenameiterator_traits::difference_typecount(InputIteratorfirst,InputIteratorlast,constT&value);templatetypenameiterator_traits::difference_typec

C++:std::tuple_size/tuple_element 可以专门化吗?

是std::tuple_size的特化和std::tuple_element允许自定义类型?我想是的,但我想绝对确定,我找不到任何具体信息。示例(省略了命名空间、成员函数和get重载):templatestructvector{T_data[N];};templateconstexprT&get(vector&vec){returnvec._data[I];}namespacestd{templateclasstuple_size>:publicstd::integral_constant{};templateclasstuple_element>{public:usingtype=T

c++ - 在 C++ 中使用 size_t 是一种好习惯吗?

我看到人们使用size_t每当它们表示无符号整数时。例如:classCompany{size_tnum_employees_;//...};这是好的做法吗?一件事是你必须包括.应该是unsignedint反而?甚至只是int?仅使用int听起来对我很有吸引力,因为它避免了像这样的愚蠢错误(因为人们经常使用int):for(inti=num_employees_-1;i>=0;--i){//dosomethingwithemployee_[i]} 最佳答案 size_t可能与int的大小不同.对于员worker数等因素,这种差异通常是