就不用考虑用int还是long了
size_t
的大小是根据平台的不同而变化的,但它被设计成足够大,以便能够表示系统中最大可能的对象大小。在实践中,size_t
通常被用于表示数组的大小、循环计数以及其他与内存大小相关的操作。
#include <iostream>
#include <vector>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
// 使用 size_t 表示数组的大小
size_t vectorSize = myVector.size();
// 使用 size_t 进行循环计数
for (size_t i = 0; i < vectorSize; ++i) {
std::cout << myVector[i] << " ";
}
return 0;
}
- size_t在32位架构中定义为:typedef unsigned int size_t;
- size_t在64位架构中被定义为:typedef unsigned long size_t;
- size_t是无符号的,并且是平台无关的,表示0-MAXINT的范围;int为是有符号的;
- int在不同架构上都是4字节,size_t在32位和64位架构上分别是4字节和8字节,在不同架构上进行编译时需要注意这个问题。
- ssize_t是有符号整型,在32位机器上等同与int,在64位机器上等同与 long int.