vector<int>存储数据的格式
时间: 2023-08-10 21:04:11 浏览: 193
在C++中,`vector<int>`是一个动态数组,用于存储一组整数类型的数据。`vector<int>`的存储数据格式是一个连续的、固定大小的内存块,其中每个元素的大小都是`sizeof(int)`字节。
例如,以下代码演示了如何创建一个包含整数数据的`vector<int>`,并打印出每个元素的地址:
```
std::vector<int> vec = {1, 2, 3, 4, 5};
for (unsigned int i = 0; i < vec.size(); i++) {
std::cout << "Address of element " << i << ": " << &vec[i] << std::endl;
}
```
输出结果类似于:
```
Address of element 0: 0x7fff5fbff830
Address of element 1: 0x7fff5fbff834
Address of element 2: 0x7fff5fbff838
Address of element 3: 0x7fff5fbff83c
Address of element 4: 0x7fff5fbff840
```
可以看到,`vector<int>`中的元素是连续存储的,每个元素的地址相差4个字节,这是因为`int`类型的大小是4个字节。因此,如果需要访问`vector<int>`中的元素,可以使用下标操作符`[]`,同时也可以使用指针操作符`*`来访问元素:
```
int x = vec[0]; // 通过下标操作符访问元素
int* p = &vec[0]; // 通过指针操作符获取第一个元素的地址
int y = *p; // 通过指针操作符访问第一个元素
```
需要注意的是,当`vector<int>`中的元素数量发生变化时,`vector<int>`可能会重新分配内存,因此元素的地址可能会发生变化。因此,在存储指针类型的数据时,需要注意内存管理问题。
阅读全文