跳到主要内容

std::deque assign() 方法

// (1) Non const version only
void assign( size_type count, const T& value );

// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );

// (3) Non const version only
void assign( std::initializer_list<T> ilist );

用另一个容器的内容替换当前容器的内容。

  • (1) 将内容替换为 valuecount 份拷贝。

  • (2) 将内容替换为范围 [ first, last ) 中元素的拷贝。

    未定义行为

    如果任一参数是 *this 中的迭代器,则行为未定义

    如果任一参数是 *this 中的迭代器。

    如果 InputIt 是整数类型,此重载与重载 (1) 具有相同的效果。

(自 C++11 起)

  • (3) 将内容替换为初始化列表 ilist 中的元素。
失效

所有指向容器元素的迭代器指针引用都将失效。end 后迭代器也失效。

参数

  • count - 容器的新大小
  • value - 用于初始化容器元素的数值
  • first, last - 复制元素的范围
  • ilist - 复制值的初始化列表

返回值

(无)

复杂度

  • (1) count 的线性复杂度 - O(count)
  • (2)firstlast 之间的距离呈线性关系 - O(std::distance(first, last))
  • (3) 线性与 ilist.size() 相关 - O(ilist.size())

异常

(无)

示例

Main.cpp
#include <deque>
#include <iostream>
#include <string>

int main()
{
std::deque<char> characters;

auto print_deque = [&](){
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};

characters.assign(5, 'a');
print_deque();

const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_deque();

characters.assign({'C', '+', '+', '1', '1'});
print_deque();
}
输出
a a a a a 
b b b b b b
C + + 1 1
本文源自 此 CppReference 页面。它可能为了改进或编辑者的偏好而进行了修改。点击“编辑此页面”查看本文档的所有更改。
悬停查看原始许可证。

std::deque assign() 方法

// (1) Non const version only
void assign( size_type count, const T& value );

// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );

// (3) Non const version only
void assign( std::initializer_list<T> ilist );

用另一个容器的内容替换当前容器的内容。

  • (1) 将内容替换为 valuecount 份拷贝。

  • (2) 将内容替换为范围 [ first, last ) 中元素的拷贝。

    未定义行为

    如果任一参数是 *this 中的迭代器,则行为未定义

    如果任一参数是 *this 中的迭代器。

    如果 InputIt 是整数类型,此重载与重载 (1) 具有相同的效果。

(自 C++11 起)

  • (3) 将内容替换为初始化列表 ilist 中的元素。
失效

所有指向容器元素的迭代器指针引用都将失效。end 后迭代器也失效。

参数

  • count - 容器的新大小
  • value - 用于初始化容器元素的数值
  • first, last - 复制元素的范围
  • ilist - 复制值的初始化列表

返回值

(无)

复杂度

  • (1) count 的线性复杂度 - O(count)
  • (2)firstlast 之间的距离呈线性关系 - O(std::distance(first, last))
  • (3) 线性与 ilist.size() 相关 - O(ilist.size())

异常

(无)

示例

Main.cpp
#include <deque>
#include <iostream>
#include <string>

int main()
{
std::deque<char> characters;

auto print_deque = [&](){
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};

characters.assign(5, 'a');
print_deque();

const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_deque();

characters.assign({'C', '+', '+', '1', '1'});
print_deque();
}
输出
a a a a a 
b b b b b b
C + + 1 1
本文源自 此 CppReference 页面。它可能为了改进或编辑者的偏好而进行了修改。点击“编辑此页面”查看本文档的所有更改。
悬停查看原始许可证。