深圳网站建设的公司招聘,好看的手机端网站开发页面,公司怎么做网站需要多少钱,网站建设制作设计惠州C常用算法函数
1. 前置知识
1.1 迭代器的类别
C中#xff0c;迭代器是 STL 容器库的核心组件之一#xff0c;具有举足轻重的作用#xff0c;它提供了一种 统一的方式来访问和遍历容器#xff0c;而无需关心底层数据结构的具体实现。迭代器类似指针#xff0c;但比指针更通…C常用算法函数
1. 前置知识
1.1 迭代器的类别
C中迭代器是 STL 容器库的核心组件之一具有举足轻重的作用它提供了一种 统一的方式来访问和遍历容器而无需关心底层数据结构的具体实现。迭代器类似指针但比指针更通用可以用于各种容器类型。
迭代器可以分为两类方向性质单向迭代器Forward Iterator双向迭代器Bidirectional Iterator随机访问迭代器Random Access Iterator输入迭代器Input Iterator输出迭代器Output Iterator遍历方向正向迭代器iterator反向迭代器reverse_iterator特性输入迭代器输出迭代器单向迭代器双向迭代器随机迭代器读*iter✅✅✅✅写*iter ✅✅✅✅✅✅✅✅✅–✅✅✅-✅
常见的单向迭代器forward_list、unordered_map、unordered_set常见的双向迭代器list、map、set常见的随机迭代器vector、string、deque1.2. 仿函数
仿函数是C中一种行为类似函数的对象通过重载函数调用运算符operator()实现。它们比普通函数更灵活比函数指针更具有可读性并且可以作为模板参数传递。
1.2.1 less仿函数
#include functionaltemplate typename T
struct less {bool operator() (const T x , const T y) const { return x y; }
};1.2.2 greater仿函数
#include functionaltemplate typename T
struct greater {bool operator() (const T x , const T y) const { return x y; }
};2. find
std::find 在 [first, last) 范围内线性搜索第一个等于 val 的元素。它使用 operator 来比较元素。
函数原型
template class InputIterator, class T
InputIterator find (InputIterator first, InputIterator last, const T val);参数说明first、last一段左闭右开的迭代器区间。val查找的值。返回值如果找到指定值返回指向该元素的迭代器。如果未找到返回 last 迭代器end()。3. swap
std::swap 是 C 标准库中用于交换两个对象的函数模板。
函数原型
template class T
void swap (T a, T b);参数说明a第一个要交换的值。b第二个要交换的值。4. reverse
std::reverse 是 C 标准库中用于反转指定范围内元素顺序的函数模板。
函数原型
template class BidirectionalIterator
void reverse (BidirectionalIterator first, BidirectionalIterator last);参数说明
first、last一段左闭右开的迭代器区间。
5. sort
std::sort 是 C 标准库中用于排序的核心算法默认升序。
函数原型
// 1.默认
template class RandomAccessIterator
void sort (RandomAccessIterator first, RandomAccessIterator last);
// 2.重载
template class RandomAccessIterator, class Compare
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);参数说明first、last一段左闭右开的迭代器区间。comp比较函数对象决定升序还是降序。升序less 仿函数。降序greater 仿函数。sort底层是快排