public member function
<vector>

std::vector::data

      value_type* data() noexcept;const value_type* data() const noexcept;
访问数据
返回一个直接指向 vector 内部用于存储其拥有元素的内存数组的指针。

由于 vector 中的元素保证存储在连续的存储位置,并按 vector 表示的顺序排列,因此获取的指针可以通过偏移量来访问数组中的任何元素。

参数



返回值

一个指向 vector 内部使用的数组中第一个元素的指针。

如果 vector 对象是 const 限定的,则函数返回一个指向const value_type的指针。否则,它返回一个指向value_type.

成员类型value_type是容器中元素的类型,在 vector 中定义为第一个类模板参数(T).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// vector::data
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector (5);

  int* p = myvector.data();

  *p = 10;
  ++p;
  *p = 20;
  p[2] = 100;

  std::cout << "myvector contains:";
  for (unsigned i=0; i<myvector.size(); ++i)
    std::cout << ' ' << myvector[i];
  std::cout << '\n';

  return 0;
}

输出
myvector contains: 10 20 0 100 0


复杂度

常量。

迭代器有效性

没有变化。

数据竞争

访问容器(const 和非 const 版本都不会修改容器)。
调用不会直接访问任何包含的元素,但返回的指针可用于访问或修改元素。并发访问或修改不同元素是安全的。

异常安全

无异常保证:此成员函数从不抛出异常。

另见