C++ set constructor(构造函数) 使用方法及示例

C++ Stack(栈)C++ STL Set(集合)C++ set constructor(构造函数) 使用方法及示例

C++ STL Set(集合)

set构造函数有以下五种用途:

默认构造函数:用于构造具有零个元素的空set容器。

范围构造函数:用于构造内容范围为[first,last)的容器。

复制构造函数:用于构造带有现有容器元素副本的集合。

move构造函数:用于使用move语义与其他元素一起构造容器。

初始化程序列表构造函数:用于构造带有初始化程序列表内容的集合。

语法默认构造函数explicit set (const key_compare& comp = key_compare(),              const allocator_type& alloc = allocator_type());//到 C++ 11explicit set (const key_compare& comp = key_compare(),              const allocator_type& alloc = allocator_type());explicit set (const allocator_type& alloc);//从C ++ 11开始范围构造器

template   set (InputIterator first, InputIterator last,       const key_compare& comp = key_compare(),       const allocator_type& alloc = allocator_type());//到 C++ 11template   set (InputIterator first, InputIterator last,       const key_compare& comp = key_compare(),       const allocator_type& = allocator_type());//从C ++ 11开始复制构造函数

set (const set& x);//到 C++ 11set (const set& x);set (const set& x, const allocator_type& alloc);//从C ++ 11开始移动构造函数

set (set&& x);set (set&& x, const allocator_type& alloc);//从C ++ 11开始初始化列表构造函数

set (initializer_list il,     const key_compare& comp = key_compare(),     const allocator_type& alloc = allocator_type());//从C ++ 11开始参数

comp:比较函数对象,它接受两个关键参数,如果第一个参数在第二个参数之前,则返回true,否则返回false。默认情况下,它使用less 谓词。

alloc:一个分配器对象,用于此容器的所有内存分配。

first:将迭代器输入范围内的第一个位置。

last:将迭代器输入到范围中的最后一个位置。

x:另一个相同类型的set对象。

il:一个初始化器列表对象,将从中复制元素。

返回值

构造函数从不返回任何值。

复杂度

对于空的构造函数和移动的构造函数,复杂性将是恒定的。

对于所有其他情况,如果元素已经排序,则迭代器之间的距离的复杂度将是线性的。

迭代器有效性

如果set容器的元素在move构造函数中移动,则使与x相关的所有指针,迭代器和引用无效。

数据争用

访问所有复制的元素。

异常安全

万一引发异常,则没有任何效果。

实例1

让我们看一下默认构造函数的简单示例:

#include #include using namespace std;int main(void) {   // 默认构造函数   set s;     int size = s.size();    cout 

比丘资源网 » C++ set constructor(构造函数) 使用方法及示例

发表回复

提供最优质的资源集合

立即查看 了解详情