C++ STL中的deque insert() 函数
deque::insert()函数是C++ STL中的内置函数,用于在deque中插入元素。插入(insert())函数可以通过以下三种方式使用:
- 在位置 position处插入新元素 val ,从而扩展deque。
- 在deque中插入 n个值为 val 的新元素,从而扩展deque。
- 在范围 [first, last)中插入新元素,从而扩展deque。
语法:
deque_name.insert (iterator position, const value_type &val)
or
deque_name.insert (iterator position, size_type n, const value_type &val)
or
deque_name.insert (iterator position, InputIterator first, InputIterator last)
参数:
该函数接受以下四个参数:
- position - 指定要插入元素/元素的位置。
- val - 指定要分配给新插入的元素的值。
- n - 指定要插入的元素数。每个元素都被初始化为 val 的副本。
- first、last - 指定迭代器,指定要插入的元素范围。该范围包括first和last之间的所有元素,包括由first指向但未指向last的元素。
返回值:
该函数返回一个指向新插入元素中的第一个元素的迭代器。以下程序说明了上述函数:
程序1:
// CPP program to illustrate the
// deque::insert() function
// insert elements by iterator
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque<int> dq = { 1, 2, 3, 4, 5 };
deque<int>::iterator it = dq.begin();
++it;
it = dq.insert(it, 10); // 1 10 2 3 4 5
std::cout << "Deque contains:";
for (it = dq.begin(); it != dq.end(); ++it)
cout << ' ' << *it;
cout << '\n';
return 0;
}
输出结果:
Deque contains: 1 10 2 3 4 5
时间复杂度: O(n)
辅助空间: O(1)
程序2:
// CPP program to illustrate the
// deque::insert() function
// program for second syntax
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque<int> dq = { 1, 2, 3, 4, 5 };
deque<int>::iterator it = dq.begin();
// 0 0 1 2 3 4 5
dq.insert(it, 2, 0);
std::cout << "Deque contains:";
for (it = dq.begin(); it != dq.end(); ++it)
cout << ' ' << *it;
cout << '\n';
return 0;
}
输出结果:
Deque contains: 0 0 1 23 4 5
时间复杂度: O(n)
辅助空间: O(1)
程序3:
// CPP program to illustrate the
// deque::insert() function
// program for third syntax
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque<int> dq = { 1, 2, 3, 4, 5 };
deque<int>::iterator it = dq.begin();
int arr[] = { 6, 7, 8 };
dq.insert(dq.begin() + 3, arr, arr + 3);
std::cout << "Deque contains:";
for (it = dq.begin(); it != dq.end(); ++it)
cout << ' ' << *it;
cout << '\n';
return 0;
}
输出结果:
Deque contains: 1 2 3 6 7 8 4 5
时间复杂度: O(n)
辅助空间: O(1)
// CPP程序,演示deque :: insert()函数
// 用于第三个语法的程序
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque<int> dq = {1, 2, 3, 4, 5};
deque<int> :: iterator it = dq.begin();
++it;
vector<int> v(2, 10);
// 1 10 10 2 3 4 5
dq.insert(it, v.begin(), v.end());
std :: cout << "双端队列包含:";
for (it = dq.begin(); it!= dq.end(); ++it)
cout <<' ' << * it;
cout <<'\n';
返回0;
}
输出:
Deque contains: 1 10 10 2 3 4 5
时间复杂度: O(n)
辅助空间: O(1)