当前位置: 首页 > news >正文

海南海口府城网站开发微信营销平台哪个好

海南海口府城网站开发,微信营销平台哪个好,企业做网站需要的资料,wordpress插件开发工具算法(2)----STL里的排序函数。 1. sort: 对容器或普通数组中指定范围内的元素进行排序,默认进行升序排序。 sort函数是基于快速排序实现的,属于不稳定排序。 只支持3种容器:array、vector、deque。 如果容器中存储的是自定义的对象&#xff…
算法(2)----STL里的排序函数。
1. sort: 对容器或普通数组中指定范围内的元素进行排序,默认进行升序排序。

    sort函数是基于快速排序实现的,属于不稳定排序。

    只支持3种容器:array、vector、deque。

    如果容器中存储的是自定义的对象,则该类必须提供移动构造函数和移动赋值运算符。

    代码示例:

class AA
{int* m_pValue;
public:AA(int v) :m_pValue(new int(v)) {}//拷贝构造函数AA(const AA& other) {if (0 != other.m_pValue) {this->m_pValue = new int(*other.m_pValue);}else {this->m_pValue = 0;}}//析构函数~AA() {delete m_pValue;}//移动构造函数AA(AA&& other) noexcept : m_pValue(other.m_pValue) {other.m_pValue = 0;}//移动赋值操作符AA& operator = (AA&& other) noexcept {if (this != &other) {delete m_pValue;m_pValue = other.m_pValue;other.m_pValue = 0;}return *this;}//比较操作符bool operator < (AA& other) {if (0 != this->m_pValue && 0 != other.m_pValue) {return *this->m_pValue < *other.m_pValue;}return false;}void Print() {if (0 != this->m_pValue) {cout << *this->m_pValue << " ";}else {cout << "null" << " ";}}
};int main() {std::vector<AA> v1{ 5,6,9,8,3,2,1,4 };for_each(v1.begin(), v1.end(), mem_fun_ref(&AA::Print));cout << endl;sort(v1.begin(), v1.end());for_each(v1.begin(), v1.end(), mem_fun_ref(&AA::Print));return 0;
}
2. stable_sort: 排序后保证相等元素的相对位置和排序前是一样的。

    stable_sort函数是基于归并排序实现的,属于稳定排序。用法和sort一样。

3. partial_sort(first, middle, last)
    从指定范围内选出(middle-first)个最小的元素并排序存放在 [first,middle) 区间。

    代码示例:

void printInt(int val)
{cout << val << "  ";
}
int main() {std::vector<int> v1{ 3,2,5,4,1,6,9,8 };for_each(v1.begin(), v1.end(), printInt);cout << endl;//将v1中最小的 3 个元素移动到开头位置并排好序partial_sort(v1.begin(), v1.begin() + 3, v1.end());for_each(v1.begin(), v1.end(), printInt);return 0;
}
4. partial_sort_copy(first, last, result_first, result_last)
    从指定范围内选出(result_last-result_first)个元素排序后拷贝到另一个容器。

    代码示例:

void printInt(int val)
{cout << val << "  ";
}
int main() {int target[4] = { 0 };std::vector<int> v1{ 3,2,5,4,1,6,9,8 };//将v1中前面5个元素排序,然后拷贝3个元素到targetpartial_sort_copy(v1.begin(), v1.begin() + 5, target, target + 3);for_each(target, target + 4, printInt);return 0;
}
5. nth_element (first, nth, last)

    找到[first, last)范围内按照排序规则(默认升序)位于第nth个位置处的元素,并将其放置到此位

     置。同时使所有比此元素小的元素在左侧,比它大的元素在右侧。

void printInt(int val)
{cout << val << "  ";
}
int main() {std::vector<int> v1{ 8,1,3,4,5,6,0,2,7,9 };//默认升序排序nth_element(v1.begin(), v1.begin() + 2, v1.end());cout << "nth_element排序" << endl;for_each(v1.begin(), v1.end(), printInt);return 0;
}
6. partition (first, last, pred)

     根据用户自定义的筛选规则,重新排列指定区域内存储的数据,使其分为 2 组,第一组为符合

     筛选条件的数据,另一组为不符合筛选条件的数据。返回第二组的第一个元素。

     代码示例:

void printInt(int val)
{cout << val << "  ";
}
bool compare(int i) { return (i % 2) == 0; }
int main() {std::vector<int> v1{ 1,2,3,4,5,6,7,8,9 };auto bound = partition(v1.begin(), v1.end(), compare);//按奇偶分组cout << "bound = " << *bound<<endl;for_each(v1.begin(), v1.end(), printInt);return 0;
}
7. stable_partition (first, last, pred)

    保证对指定区域内数据完成分组的同时,不改变各组内元素的相对位置。用法和partition一样。

8. is_sorted (first, last, comp)

    此函数专门用于判断某个序列是否为有序序列。

    代码示例:

bool compare(int i, int j) { return i > j; }
int main() {std::vector<int> v1{ 9, 8, 7, 6, 2 };cout << "v1 is sorted? " << is_sorted(v1.begin(), v1.end(), compare) << endl;return 0;
}
http://www.dinnco.com/news/63572.html

相关文章:

  • 婚纱照网站网络推广员是什么工作
  • 平凉市建设局网站浏览器如何推广自己网站
  • 可以做视频推广的网站有哪些seo网站培训
  • 做网站怎么赚钱 知乎seo网站推广专员
  • 论坛网站开发文档快速优化排名公司推荐
  • 四川网站建设 招标seo教程优化
  • wordpress 网站名称友情链接是什么意思
  • wordpress添加关键词插件推动防控措施持续优化
  • 北京定制网站开发公司抖音搜索seo代理
  • wed网站seo培训一对一
  • wordpress英文别名58同城关键词怎么优化
  • 网站建设验收方案品牌营销策划机构
  • 济宁北湖旅游度假区建设局网站百度网址导航主页
  • 做企业网站需要什么文件专业网店推广
  • 南京企业做网站seo关键词优化培训班
  • 如何做网站备案怎样建立一个自己的网站
  • b2b网站如何做住房和城乡建设部官网
  • 太原在线制作网站外链吧官网
  • 灵犀科技 网站建设北京seo公司司
  • 网站建设理念南京谷歌seo
  • python毕业设计做网站seo视频教程
  • 做招标网站 如何免费行情网站的推荐理由
  • 网站开场flash怎么做的网站seo内容优化
  • 特微网站首页百度招聘平台
  • 百姓畅言六安杂谈seo优化基础教程pdf
  • 淄博住房和城乡建设厅网站希爱力5mg效果真实经历
  • 阿里主机wordpress网站关键词优化wang
  • 建立一个网站的流程提高网站排名软件
  • 网站建设技术入股合同搜索词分析
  • 做自媒体挣钱的网站有哪些企业网站的搜索引擎推广与优化