跳到主要内容

std::vector assign() 方法

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

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

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

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

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

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

    未定义行为

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

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

    此重载仅在 InputIt 满足 LegacyInputIterator 时才参与重载解析。

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

失效

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

参数

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

返回值

(无)

复杂度

  • (1) 线性与 count 相关 - O(count)
  • (2) 线性与 firstlast 之间的距离相关 - O(std::distance(firs,t last))
  • (3) 线性与 ilist.size() 相关 - O(ilist.size())

异常

(无)

示例

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

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

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

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

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

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

std::vector assign() 方法

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

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

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

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

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

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

    未定义行为

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

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

    此重载仅在 InputIt 满足 LegacyInputIterator 时才参与重载解析。

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

失效

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

参数

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

返回值

(无)

复杂度

  • (1) 线性与 count 相关 - O(count)
  • (2) 线性与 firstlast 之间的距离相关 - O(std::distance(firs,t last))
  • (3) 线性与 ilist.size() 相关 - O(ilist.size())

异常

(无)

示例

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

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

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

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

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

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