C++ STL中的deque emplace

C++ STL中的deque emplace

双端队列或Deque(Double-ended queues)是一种在两端具有扩张和收缩功能的序列式容器。它们类似于向量,但在向尾部和头部插入和删除元素时更加高效。与向量不同,连续的存储分配可能无法保证。

emplace() 函数将一个新元素插入到指定位置之前,容器的大小增加了一个。

语法:

iterator emplace(const_iterator position, value_type val);

参数: 此方法接受以下参数:

  • position: 定义要在其前面插入新元素的位置。
  • val: 要插入的新值。

返回值: 它返回一个指向新构造元素的迭代器。

以下示例说明了这种方法:

示例1:

#include <deque>
#include <iostream>
using namespace std;

int main()
{
 // 初始化名为sample的deque 
 deque<int> sample = { 2, 3, 4, 5};

 // 初始化迭代器
 deque<int>::iterator itr;

 // 在sample的第一个位置添加1,
 // 因为itr指向sample的第一个位置
 sample.emplace(sample.begin(), 1);

 for (itr = sample.begin(); itr != sample.end(); ++itr)
  // 打印sample的所有元素
  cout<<*itr<<" ";

 cout<<endl;
 return 0;
}  

输出:

1 2 3 4 5

示例2:

#include <deque>
#include <iostream>
using namespace std;

int main()
{
 // 初始化名为sample的deque 
 deque<char> sample = { 'G', 'E', 'K', 'S'};

 // 初始化迭代器
 deque<char>::iterator itr = sample.begin();

 // 将迭代器增加一个位置
 ++itr;

 // 在sample的第二个位置添加E,
 // 因为itr指向sample的第二个位置
 sample.emplace(itr, 'E');

 for (itr = sample.begin(); itr != sample.end(); ++itr)

  // 打印sample的所有元素
  cout<<*itr;

 cout<<endl;
 return 0;
}  

输出:

GEEKS

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程