std::forward_list::merge

来自cppreference.com

 
 
 
std::forward_list

|- class="t-nv-h1"

| colspan="5" |
成员函数
原文:
Member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

|-

forward_list::forward_list
forward_list::~forward_list
forward_list::operator=
forward_list::assign
forward_list::get_allocator
元素的访问
原文:
Element access
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
forward_list::front
迭代器
原文:
Iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
forward_list::before_begin
forward_list::cbefore_begin
forward_list::begin
forward_list::cbegin
forward_list::end
forward_list::cend
容量
原文:
Capacity
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
forward_list::empty
forward_list::max_size
修饰符
原文:
Modifiers
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
forward_list::clear
forward_list::insert_after
forward_list::emplace_after
forward_list::erase_after
forward_list::push_front
forward_list::emplace_front
forward_list::pop_front
forward_list::resize
forward_list::swap
操作
原文:
Operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
forward_list::merge
forward_list::splice_after
forward_list::remove
forward_list::remove_if
forward_list::reverse
forward_list::unique
forward_list::sort
 
void merge( forward_list& other );
(1) (since C++11)
void merge( forward_list&& other );
(1) (since C++11)
template <class Compare>
void merge( forward_list& other, Compare comp );
(2) (since C++11)
template <class Compare>
void merge( forward_list&& other, Compare comp );
(2) (since C++11)
合并两个已排序的列表为一体。应该按升序排列的列表.
原文:
Merges two sorted lists into one. The lists should be sorted into ascending order.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
没有这样的元素复制。在手术后变成空容器other。如果this == &other函数什么也不做。如果get_allocator() != other.get_allocator(),该行为是未定义的。没有迭代器或引用变得无效,不进*this,除了移动的元素的迭代器现在到otheroperator<的第一个版本使用比较的元素,第二个版本使用给定的比较函数comp.
原文:
No elements are copied. The container other becomes empty after the operation. The function does nothing if this == &other. If get_allocator() != other.get_allocator(), the behavior is undefined. No iterators or references become invalidated, except that the iterators of moved elements now refer into *this, not into other. The first version uses operator< to compare the elements, the second version uses the given comparison function comp.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

other -
另一个容器合并
原文:
another container to merge
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
comp - 比较函数,如果第一个参数小于第二个参数,返回true

该函数的签名形式如下:

 bool cmp(const Type1 &a, const Type2 &b);

虽然函数签名中const &不是必须的,但是函数必须保证不会修改传递给它的对象。
类型 Type1Type2 必须能使类型 forward_list<T,Allocator>::const_iterator 的对象能够被解引用并隐式转换为任意二者。 ​

[编辑] 返回值

(无)
原文:
(none)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 为例

#include <iostream>
#include <forward_list>
 
std::ostream& operator<<(std::ostream& ostr, const std::forward_list<int>& list)
{
    for (auto &i : list) {
        ostr << " " << i;
    }
    return ostr;
}
 
int main()
{
    std::forward_list<int> list1 = { 5,9,0,1,3 };
    std::forward_list<int> list2 = { 8,7,2,6,4 };
 
    list1.sort();
    list2.sort();
    std::cout << "list1:  " << list1 << "\n";
    std::cout << "list2:  " << list2 << "\n";
    list1.merge(list2);
    std::cout << "merged: " << list1 << "\n";
}

输出:

list1:   0 1 3 5 9
list2:   2 4 6 7 8
merged:  0 1 2 3 4 5 6 7 8 9

[编辑] 复杂性

在最size() + other.size() - 1比较.
原文:
at most size() + other.size() - 1 comparisons.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 另请参阅

从另一个forward_list移动元素
原文:
moves elements from another forward_list
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]