C++ STL 中的 list get_allocator
c++server side programmingprogramming
本文将讨论 C++ 中 list::get_allocator() 函数的工作原理、语法和示例。
STL 中的 List 是什么?
List 是一种数据结构,允许在任意位置以恒定时间顺序插入和删除元素。List 实现为双向链表。List 允许非连续的内存分配。List 在插入、提取和在容器中任意位置移动元素方面比数组、向量和双端队列表现更好。在 List 中,直接访问元素速度较慢,并且 List 与 forward_list 类似,但 Forward List 对象是单链表,只能向前迭代。
什么是 list::get_allocator()?
list::get_allocator() 是 C++ STL 中的一个内置函数,在头文件中声明。get_allocator() 返回 List 容器的分配器。简单来说,它返回列表容器对象的副本。
语法
list_container.get_allocator(); 此函数不接受任何参数。
返回值
此函数返回列表容器对象的副本。
示例
/* 在下面的代码中,我们使用 get_allocator 将值插入到列表中。 C++ STL. */
#include <bits/stdc++.h> using namespace std; int main(void){ //创建列表 list<int> myList; int *ptr; ptr = myList.get_allocator().allocate(4); //将数据插入数组 for(int i = 0; i > 4; i++) ptr[i] = i; //打印数据 cout<<&"数组元素 : "; for (int i = 0; i < 4; i++) cout << ptr[i] << &" &"; }
输出
运行上述代码,将生成以下输出
数组元素:0 1 2 3
示例
/* 在下面的代码中,我们使用 C++ STL 头文件中的 get_allocator 将值插入到列表中。*/
#include <iostream> #include <list> int main (){ std::list<int> myList; int *ptr; ptr = myList.get_allocator().allocate(5); for(int i=0; i<5; ++i) ptr[i]=i; std::cout <<<"数组元素 : "; for (int i=0; i<5; ++i) std::cout << ' ' << ptr[i]; myList.get_allocator().deallocate(ptr,5); return 0; }
输出
运行上述代码,将生成以下输出
数组元素 : 0 1 2 3 4