size()和sizeof()的区别与理解
size():是一个函数,通常用于容器类(例如std::vector, std::string, std::list等)或C++标准库提供的其他类。这个函数返回容器中当前存储的元素数量,也就是容器的大小。
#include <vector>
#include <iostream>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::cout << "Size of the vector: " << numbers.size() << std::endl; // Output: Size of the vector: 5
return 0;
}
sizeof():是一个操作符,而不是函数。它用于获取数据类型或变量在内存中所占用的字节数。它是在编译时计算的,因此在运行时大小是固定的,并且对于不同的实例(变量)返回相同的大小。
#include <iostream>
int main() {
int num = 42;
std::cout << "Size of int: " << sizeof(int) << " bytes" << std::endl; // Output: Size of int: 4 bytes
std::cout << "Size of num: " << sizeof(num) << " bytes" << std::endl; // Output: Size of num: 4 bytes
return 0;
}
需要注意的是,sizeof()返回的是一个size_t类型的结果,它代表字节数,具体大小在不同的编译器和平台上可能会有所不同。而size()返回的是一个特定容器中存储的元素数量,它不是字节数。
总结:
size()用于获取容器中存储的元素数量(大小)。
sizeof()用于获取数据类型或变量在内存中所占用的字节数。