📅  最后修改于: 2023-12-03 14:39:50.791000             🧑  作者: Mango
在C++ STL中,deque
是一个双端队列容器,使用时需要包含头文件<deque>
。deque
容器提供了多个成员函数来进行元素操作,其中之一是assign()
函数。
deque::assign()
函数有两个重载形式:
void assign(size_type n, const value_type& val)
: 将deque
容器中的元素全部替换为val
,重复n
次。template <class InputIterator> void assign(InputIterator first, InputIterator last)
: 将deque
容器中的元素全部替换为迭代器区间[first, last)
内的元素。其中,size_type
和value_type
都是deque
容器的类型别名。InputIterator
是一个迭代器类型,用于遍历迭代器区间内的元素。
下面是deque::assign()
函数的一些用法举例,假设已经定义了如下deque<int>
类型的容器:
#include <deque>
#include <iostream>
int main() {
std::deque<int> myDeque = {1, 2, 3, 4, 5};
std::cout << "myDeque contains:";
for (auto it=myDeque.begin(); it!=myDeque.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
下面分别说明两种用法:
assign(size_type n, const value_type& val)
myDeque.assign(3, 100);
上述代码会将myDeque
中的元素全部替换为100
,并重复3
次,即相当于:
myDeque = {100, 100, 100};
assign(InputIterator first, InputIterator last)
std::deque<int> newDeque = {6, 7, 8};
myDeque.assign(newDeque.begin(), newDeque.end());
上述代码会将myDeque
中的元素全部替换为newDeque
中的元素:
myDeque = {6, 7, 8};
deque::assign()
函数是deque
容器提供的一个重要的元素操作函数,可以快速地替换容器中的全部元素。在函数使用时需要根据实际情况选择合适的重载形式。