c++ uint , unsigned int , int(时间:2019-05-10 标签:c++uint,unsignedint,int)
问题描述
您好,我有一个程序处理大量向量和这些向量元素的索引,我想知道:
Hi I have a program that deals alot with vectors and indexes of the elements of these vectors, and I was wondering:
uint和unsigned int有区别吗- 最好使用上述类型之一或仅使用
int因为我读到有人说编译器确实更有效地处理 int 值,但如果我使用int我必须始终检查是否有负 idxs,这很痛苦. - 您认为迭代器更好吗?它比普通索引
vectorx[idx]更有效吗?
- is there a difference between
uintandunsigned int - which is better to use one of the above types or just use
intas I read some people say compiler does handle int values more efficiently, but if I usedintI will have to check always for negative idxs which is pain. - do you think iterators to be better? is it more efficient than normal indexing
vectorx[idx]?
p.s 该软件将处理大数据处理,必须具备良好的性能
p.s the software will handle large data processes and good performance is a must have requirement
推荐答案
C++ 没有定义像
uint这样的类型.这必须是您的"类型,即在您的代码或某个第三方库中定义的类型.可以猜到它与unsigned int相同.可能是unsigned long int或其他东西.无论如何,你必须自己检查.
C++ defines no such type as
uint. This must be "your" type, i.e. a type defined in your code or some third party library. One can guess that it is the same asunsigned int. Could beunsigned long intthough or something else. Anyway, you have to check it yourself.
这是个人风格的问题.例如,我认为必须使用无符号类型来表示自然的非负值,例如大小或数量.除了一些特定的上下文之外,有符号和无符号类型的性能没有区别.我想说的是,在大多数情况下,处理效率更高的是 unsigned 类型.
It is a matter of personal style. I, for example, believe that one has to use unsigned types to represent naturally non-negative values, like sizes or quantities. There's no difference in performance between signed and unsigned types, aside from some specific contexts. I would say that in most cases it is unsigned types that will be handled more efficiently.
迭代器使实现更加通用,即您可以使用顺序访问迭代器,从而使您的实现适用于任何顺序数据结构.通过使用索引,您对数据结构施加了随机访问要求,这是一个很强的要求.在没有真正需要时强加严格的要求并不是一个好主意.
Iterators make implementations more generic, i.e. you can use sequential-access iterator and thus make your implementation applicable to any sequential data structure. By using index you impose the random-access requirement on the data structure, which is a strong requirement. It is not a good idea to impose strong requirements when there's no real need for them.
这篇关于时间:2019-05-10 标签:c++uint,unsignedint,int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:时间:2019-05-10 标签:c++uint,unsignedint,int
- 如何提取 __VA_ARGS__? 2022-01-01
- 使用 __stdcall & 调用 DLLVS2013 中的 GetProcAddress() 2021-01-01
- 将函数的返回值分配给引用 C++? 2022-01-01
- GDB 不显示函数名 2022-01-01
- 哪个更快:if (bool) 或 if(int)? 2022-01-01
- XML Schema 到 C++ 类 2022-01-01
- OpenGL 对象的 RAII 包装器 2021-01-01
- DoEvents 等效于 C++? 2021-01-01
- 从父 CMakeLists.txt 覆盖 CMake 中的默认选项(...)值 2021-01-01
- 将 hdc 内容复制到位图 2022-09-04
