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 版本都不會修改容器)。
呼叫不會直接訪問任何包含的元素,但返回的指標可用於訪問或修改元素。併發訪問或修改不同元素是安全的。

異常安全

無異常保證:此成員函式從不丟擲異常。

另見