最終更新日時:
が更新

履歴 編集

function
<vector>

std::vector::data(C++11)

T* data() noexcept;
const T* data() const noexcept;

効果

配列の先頭へのポインタを返す。

vectorが空の場合であっても、この関数の呼び出し自体は問題なく行える。ただし、その戻り値については規定されていないため、間接参照を行うと未定義動作になる。

戻り値

[data(), data() + size()) が適正な範囲になるようなポインタ。

空ではないvectorに対してはdata() == &front()となる。

計算量

定数時間

#include <iostream>
#include <vector>

int main()
{
  std::vector<int> v = {3, 1, 4};

  int* p = v.data();

  std::cout << *p << std::endl;

  ++p;
  std::cout << *p << std::endl;
}

出力

3
1

バージョン

言語

  • C++11

処理系

備考

gcc 4.8.2 の時点で libstdc++ の実装にはバグがあり、vector が空の場合に data() を呼び出すと未定義動作になる。(Bug 59829)

参照