📜  C++ STL-Deque.Assign()函数(1)

📅  最后修改于: 2023-12-03 14:39:50.791000             🧑  作者: Mango

C++ STL-Deque.Assign()函数

在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_typevalue_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容器提供的一个重要的元素操作函数,可以快速地替换容器中的全部元素。在函数使用时需要根据实际情况选择合适的重载形式。