public member function
<vector>

std::vector::get_allocator

allocator_type get_allocator() const;
allocator_type get_allocator() const noexcept;
獲取分配器
返回與 vector 關聯的分配器物件的副本。

引數



返回值

分配器。

成員型別allocator_type是容器使用的分配器的型別,在 vector 中定義為其第二個模板引數(Alloc).

示例

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

int main ()
{
  std::vector<int> myvector;
  int * p;
  unsigned int i;

  // allocate an array with space for 5 elements using vector's allocator:
  p = myvector.get_allocator().allocate(5);

  // construct values in-place on the array:
  for (i=0; i<5; i++) myvector.get_allocator().construct(&p[i],i);

  std::cout << "The allocated array contains:";
  for (i=0; i<5; i++) std::cout << ' ' << p[i];
  std::cout << '\n';

  // destroy and deallocate:
  for (i=0; i<5; i++) myvector.get_allocator().destroy(&p[i]);
  myvector.get_allocator().deallocate(p,5);

  return 0;
}
該示例演示了一種複雜的記憶體分配方法,用於分配一系列int使用與 vector 相同的分配器。輸出
The allocated array contains: 0 1 2 3 4


複雜度

常量。

迭代器有效性

沒有變化。

資料競爭

訪問容器。
不訪問任何包含的元素:併發訪問或修改它們是安全的。

異常安全

無異常保證:此成員函式從不丟擲異常。
複製預設分配器的任何例項化也被保證永遠不會丟擲異常。

另見