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

网站推广主要包括建设期广告机信息发布系统软件

网站推广主要包括建设期,广告机信息发布系统软件,哪里有服务好的网站建设,郑州市做网站1. set 基本概念 简介: 所有元素都会在插入时自动排序本质: set/multiset属于关联式容器,底层结构是用二叉树实现。set 和 multiset 区别: set容器不允许有重复的元素。 multiset允许有重复的元素。2. set 构造和赋值 构造&a…

1. set 基本概念

简介:

所有元素都会在插入时自动排序

本质:

set/multiset属于关联式容器,底层结构是用二叉树实现。

set 和 multiset 区别:

set容器不允许有重复的元素。
multiset允许有重复的元素。

2. set 构造和赋值

构造:

set<T> st; // 默认构造函数
set<T> st(const T& x); // 将x拷贝到st中

赋值:

set& operator=(const set& st); // 将st赋值给当前set	
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;//set 构造和赋值void printSet(const set<int>& s){for(set<int>::iterator it = s.begin(); it != s.end(); it++){cout << *it << " ";}cout << endl;
}void test01() {set<int> s1;// 插入数据只有insert一种方式s1.insert(10); // 插入元素s1.insert(30);s1.insert(60);s1.insert(20);s1.insert(20);// set容器的特点:所有元素都会在插入时自动被排序// set容器不允许插入重复数据printSet(s1);// 拷贝构造set<int> s2(s1);printSet(s2);// 赋值set<int> s3;s3 = s1;printSet(s3);
}int main(int argc, char const *argv[]) {test01();return 0;
}

3. set 大小和交换

功能描述:

统计set容器大小以及交换set 容器

函数原型

size(); // 返回set中元素的个数
empty(); // 判断set是否为空
swap(set<T> &s); // 交换sets
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;//set 大小和交换void printSet(const set<int>& s){for(set<int>::iterator it = s.begin(); it != s.end(); it++){cout << *it << " ";}cout << endl;
}// 大小
void test01() {set<int> s;s.insert(20);s.insert(10);s.insert(30);s.insert(40);printSet(s);// 判断是否为空if(s.empty()) {cout << "s is empty" << endl;}else{cout << "s is not empty" << endl;}cout << "s.size() = " << s.size() << endl;}// 交换
void test02() {set<int> s;s.insert(20);s.insert(10);s.insert(30);s.insert(40);set<int> s2;s2.insert(100);s2.insert(200);s2.insert(300);cout << "交换前:" << endl;printSet(s);printSet(s2);cout << "交换后:" << endl;s.swap(s2);printSet(s);printSet(s2);}int main(int argc, char const *argv[]) {test02();return 0;
}

4. set插入和删除操作

函数原型

void insert(const value_type& val); // 插入元素
clear(); // 清除所有元素
erase(iterator pos); // 删除pos位置的元素,返回下一个元素的迭代器
erase(iterator start, iterator end); // 删除从start到end之间的元素,返回下一个元素的迭代器
erase(const value_type& val); // 删除值为val元素,返回删除元素的个数
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;// set插入和删除操作void printSet(const set<int>& s){for(set<int>::iterator it = s.begin(); it != s.end(); it++){cout << *it << " ";}cout << endl;
}// 大小
void test01() {set<int> s;s.insert(20);s.insert(10);s.insert(30);s.insert(40);s.insert(50);s.insert(100);printSet(s);s.erase(s.begin());printSet(s);s.erase(++s.begin(), --s.end());printSet(s);s.erase(20);printSet(s);cout << "清空集合" << endl;s.clear();printSet(s);}int main(int argc, char const *argv[]) {test01();return 0;
}

5 set 查找和统计

函数原型:

find(const key_type& key); // 查找key是否存在,若存在,返回该元素的迭代器;若不存在,返回结束迭代器end()
count(const key_type& key); // 统计key的个数
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;// set 查找和统计
// 函数原型:// find(const key_type& key); // 查找key是否存在,若存在,返回该元素的迭代器;若不存在,返回结束迭代器end()
// count(const key_type& key); // 统计key的个数void printSet(const set<int>& s){for(set<int>::iterator it = s.begin(); it != s.end(); it++){cout << *it << " ";}cout << endl;
}// 大小
void test01() {set<int> s;s.insert(20);s.insert(10);s.insert(30);s.insert(40);s.insert(50);s.insert(100);set<int>::iterator it = s.find(50);if(it == s.end()){cout << "找不到" << endl;}else{cout << "找到了 " <<*it<< endl;}// 统计key的个数, 找到返回1,找不到返回0int count = s.count(10);cout << "count = " << count << endl;}int main(int argc, char const *argv[]) {test01();return 0;
}

6 set 和 multiset的区别

区别:

set不可以插入重复数据,而multiset可以
set插入数据同时会返回插入结果,表示插入是否成功
multiset 不会检测数据,因此可以插入重复数据
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;// set 和 multiset的区别void printSet(const set<int>& s){for(set<int>::iterator it = s.begin(); it != s.end(); it++){cout << *it << " ";}cout << endl;
}// 大小
void test01() {set<int> s;pair<set<int>::iterator,bool> ret =  s.insert(20);if(ret.second == true){cout << "第一次插入成功" << endl;}else{cout << "第一次插入失败" << endl;}ret = s.insert(20);if(ret.second == true){cout << "第二次插入成功" << endl;}else{cout << "第二次插入失败" << endl;}multiset<int> ms;// 允许重复插入ms.insert(20);ms.insert(20);ms.insert(20);ms.insert(20);ms.insert(20);for(multiset<int>::iterator it = ms.begin(); it != ms.end(); it++){cout << *it << " ";}cout << endl;
}int main(int argc, char const *argv[]) {test01();return 0;
}

7 pair对组创建

功能描述:

成对出现的数据,利用对组可以返回两个数据

两种创建方式:

pair<int,int> p(value1,value2); // 创建一个pair对组,value1和value2分别对应pair的两个元素
pair<int,int> p = make_pair(value1,value2); // 创建一个pair对组,value1和value2分别对应pair的两个元素
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;// pair对组创建// 大小
void test01() {// 第一种创建方式pair<string, int> p1("西施", 20);cout << p1.first << " " << p1.second << endl;// 第二种创建方式pair<string, int> p2 = make_pair("貂蝉", 18);cout << p2.first << " " << p2.second << endl;}int main(int argc, char const *argv[]) {test01();return 0;
}

8 set 容器排序

目标:

set容器默认排序规制为从小到大,掌握如何改变排序规则

主要技术点:

利用防函数,可以改变排序规则
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;// set 容器排序void printSet(set<int> &s) {for(set<int>::iterator it = s.begin(); it != s.end(); it++) {cout << *it << " ";}cout << endl;
}class MyCompare {
public:bool operator()(int a,int b) const{// 比较逻辑return a > b;}
};// 
void test01() {set<int> s;s.insert(10);s.insert(30);s.insert(20);s.insert(40);s.insert(50);printSet(s);//指定排序规制,从大到小set<int,MyCompare> s2;s2.insert(10);s2.insert(30);s2.insert(20);s2.insert(40);s2.insert(50);for(set<int,MyCompare>::iterator it = s2.begin(); it != s2.end(); it++) {cout << *it << " ";}cout << endl;
}int main(int argc, char const *argv[]) {test01();return 0;
}
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;// set 容器排序
class Person {public:Person(string name, int age) {this->age = age;this->name = name;}string name;int age;
};class MyCompare {
public:// const 不能省bool operator()(const Person& a, const Person& b) const{// 比较逻辑return a.age < b.age;}
};void printSet(set<Person,MyCompare> &s) {for(set<Person,MyCompare>::iterator it = s.begin(); it != s.end(); it++) {cout << "name: " << it->name << " age: " << it->age << endl;}cout << endl;
}void test01() {//自定义数据类型,必须要指定排序规则set<Person, MyCompare> s;s.insert(Person("西施", 18));s.insert(Person("王昭君", 19));s.insert(Person("杨玉环", 17));s.insert(Person("貂蝉", 16));printSet(s);}int main(int argc, char const *argv[]) {test01();return 0;
}
http://www.yayakq.cn/news/581393/

相关文章:

  • 大学生做网站主题制作音乐排行榜html5
  • 怎样做原创短视频网站wordpress建立目录
  • 国外网站域名备案高州市荷花镇网站建设
  • 网站不备案可以用吗wordpress后台登录logo
  • 楼盘 东莞网站建设江苏seo团队
  • 泰州做网站老薛主机安装wordpress
  • 微信公众号模板素材网站杭州网站建设
  • 现在什么网站做推广比较好超简单网站
  • 怎么做一淘宝客网站吗wordpress历史版本下载
  • 企业网站建设cms系统wordpress joonla安全
  • 福清市住房城乡建设局网站企业部门网站建设流程
  • 建一个资源网站赚钱吗电商平台的运营模式
  • 网站开发 法律学校网站开发实际意义
  • 学做网站 书固原网络营销网络推广方案
  • 兰州手机网站制作全网营销代理加盟
  • 合肥装饰公司做的好的网站个人博客网站设计
  • 网站开发的基本原则微商城系统哪家强
  • 网站运营需要++做哪些工作广告推广网站
  • 网站备案被取消数字营销的概念
  • 郑州做网站电话wordpress 说明文档下载
  • 西安响应式网站设计网站建立前期调查
  • 包头网站建设兼职现在宁波做网站
  • 内蒙古自治区住房和城乡建设厅网站电影网站如何建设
  • 山东公司网站建设仿牌 镜像网站
  • 网站虚拟空间购买一个网站的构建
  • 九江建设监督网站免费建站网站哪个好
  • 创建虚拟网站做点击盐城网站开发渠道合作
  • 用html5做网站的心得体会专业做毕业设计网站设计
  • 网站建设zrhskj自己怎么制作网页游戏
  • 提高网站访问速度密码访问wordpress