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

建站运营新闻广告策划案优秀案例

建站运营新闻,广告策划案优秀案例,网站建设商城模板,设计院加盟目录 set/multiset容器 set基本概念 set大小和交换 set插入和删除 查找和统计 set和multiset的区别 改变set排序规则 set存放内置数据类型 set存放自定义数据类型 pair队组 map容器 map容器的基本概念 map构造和赋值 map大小和交换 map插入和删除 map查找和统计…

目录

set/multiset容器

set基本概念

set大小和交换

set插入和删除

查找和统计

set和multiset的区别

改变set排序规则

set存放内置数据类型

set存放自定义数据类型

pair队组

map容器

map容器的基本概念

map构造和赋值

map大小和交换

map插入和删除

map查找和统计

改变map排序规则


set/multiset容器

set基本概念

简介:
        所有元素都会在插入时自动被排序
本质:
        set/multiset属于关联式容器,底层结构是用二叉树实现
set和multiset区别:
        set不允许容器中有重复的元素
        multiset允许容器中有重复的元素

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
using namespace std;void print(const set<int>&L)
{for(set<int>::const_iterator it = L.begin();it!=L.end();it++){cout << *it << " ";}cout << endl;
}int main()
{//set容器特点 所有元素插入时被自动赋值//set容器不允许插入重复值set<int> s1;s1.insert(40);s1.insert(10);s1.insert(20);s1.insert(60);print(s1);set<int> s2(s1);print(s2);set<int> s3;s3 = s1;print(s3);return 0;
}

编译运行

set大小和交换

size();//返回容器中元素的个数
empty();//判断容器是否为空empty();
swap(st);//交换两个集合容器

set插入和删除

insert(elem);//在容器中插入元素
clear();//清除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end);//删除区间[beg,end)的所有元素,返回下一个元素的选代器
erase(elem);//删除容器中值为elem的元素

查找和统计

find(key);//查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();
count(key);//统计key的元素个数

set和multiset的区别

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

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
using namespace std;int main()
{set<int> s1;s1.insert(40);s1.insert(10);s1.insert(20);s1.insert(60);s1.insert(60);for(set<int>::const_iterator it = s1.begin();it!=s1.end();it++){cout << *it << " ";}cout << endl;multiset<int> s2;s2.insert(40);s2.insert(10);s2.insert(20);s2.insert(60);s2.insert(60);for(multiset<int>::const_iterator it = s2.begin();it!=s2.end();it++){cout << *it << " ";}cout << endl;return 0;
}

编译运行

改变set排序规则

set存放内置数据类型

set容器默认排序是从小到大排序 利用仿函数可以改变set容器排序规则

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
using namespace std;class person
{
public:bool operator()(int v1,int v2){return v1 > v2;}
};int main()
{//默认从小到大排序set<int> s1;s1.insert(40);s1.insert(10);s1.insert(20);s1.insert(60);for(set<int>::const_iterator it = s1.begin();it!=s1.end();it++){cout << *it << " ";}cout << endl;//指定排序规则set<int,person> s2;s2.insert(40);s2.insert(10);s2.insert(20);s2.insert(60);for(set<int,person>::const_iterator it = s2.begin();it!=s2.end();it++){cout << *it << " ";}cout << endl;return 0;
}

编译运行

set存放自定义数据类型

对于自定义类型,set必须指定排序规则才能插入元素

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
using namespace std;class person
{
public:person(string name,int age){this->age = age;this->name = name;}int age;string name;
};class compare
{
public:bool operator()(const person &p1,const person &p2){//年龄降序return p1.age > p2.age;}
};void test01()
{person p1("张三",20);person p2("李四",28);person p3("王五",17);set<person,compare> s;s.insert(p1);s.insert(p2);s.insert(p3);for(set<person,compare>::const_iterator it = s.begin();it!=s.end();it++){cout <<"姓名: " << it->name<< "年龄: "<<it->age;}cout << endl;
}int main()
{test01();return 0;
}

pair队组

pair<type,type>p ( value1,value2 );
pair<type,type>p = make pair( value1,value2);

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
using namespace std;int main()
{pair<string,int>p1("tom",20);cout << "姓名: "<<p1.first<<"年龄: " <<p1.second << endl;pair<string,int>p2 = make_pair("tom",20);cout << "姓名: "<<p2.first<<"年龄: " <<p2.second << endl;return 0;
}

map容器

map容器的基本概念

     简介

        map中所有元素都是pair
        pair中第一个元素为key (键值),起到索引作用,第二个元素为value (实值)
        所有元素都会根据元素的键值自动排序
本质:

        map/multimap属于关联式容器,底层结构是用二叉树实现
优点:

        可以根据key值快速找到value值
map和multimap区别:

        map不允许容器中有重复kev值元素
        multimap允许容器中有重复key值元素

map构造和赋值

map<T1,T2> mp;//map默认构造函数

map(const map &mp);//拷贝构造函数

map& operator=(const map &mp); //重载等号操作符

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
using namespace std;void print(map<int,int>&m)
{for(map<int,int>::iterator it = m.begin();it!= m.end();it++){cout << "key: "<<it->first << "value: "<<it->second<<endl; }cout << endl;
}void test01()
{map<int,int> m;m.insert(pair<int,int>(1,10));	m.insert(pair<int,int>(3,20));m.insert(pair<int,int>(2,30));m.insert(pair<int,int>(4,40));//根据key值自动排序print(m);
}int main()
{test01();return 0;
}

map大小和交换

size();//返回容器中元素的数目
empty();//判断容器是否为空
swap(at);//交换两个集合容器

map插入和删除

insert(elem);//在容器中插入元素
clear();//清除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end);//删除区间[beg,end)的所有元素,返回下一个元素的迭代器
erase(key);//删除容器中值为key的元素

void test01()
{
    map<int,int> m;

    //插入元素

    m.insert(pair<int,int>(1,10));    

    m.insert(make_pair(2,20));

    m.insert(map<int,int>::value_type(3,30);

    m[4] = 40;//不建议插数使用 可以利用key访问到value

    
    m.erase(m.begin());//删除迭代器所指的元素,返回下一个元素的迭代器
    m.erase(m.begin(),m.end());//删除区间[beg,end)的所有元素,返回下一个元素的迭代器
    m.erase();//删除容器中值为key的元素
    m.clear();//清除所有元素
}

map查找和统计

find(key);查找key是否存在,若存在,返回该键的元素的迭代器:若不存在,返回set.end();

count(key);//统计计key的元素个数

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
using namespace std;void test01()
{map<int,int> m;m.insert(pair<int,int>(1,10));m.insert(pair<int,int>(2,20));m.insert(pair<int,int>(3,30));map<int,int>::iterator pos = m.find(3);//查找key为3的元素 返回该元素的迭代器if(pos != m.end()){cout <<"查到了元素 key = "<< (*pos).first << "value = "<< pos->second << endl;}
}
int main()
{test01();return 0;
}

改变map排序规则

map容器默认排序是从小到大排序 利用仿函数可以改变map容器排序规则

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
using namespace std;class person
{
public:bool operator()(int v1,int v2){return v1 > v2;}
};int main()
{//默认从小到大排序map<int,int> m;m.insert(pair<int,int>(1,10));	m.insert(pair<int,int>(3,30));	m.insert(pair<int,int>(2,20));	for(map<int,int>::const_iterator it = m.begin();it!=m.end();it++){cout << "key: "<<it->first << " ";}cout << endl;//指定排序规则map<int,int,person> m1;m1.insert(pair<int,int>(1,10));	m1.insert(pair<int,int>(3,30));	m1.insert(pair<int,int>(2,20));for(map<int,int,person>::const_iterator it = m1.begin();it!=m1.end();it++){cout << "key: "<<it->first << " ";}cout << endl;return 0;
}
http://www.tj-hxxt.cn/news/39397.html

相关文章:

  • wordpress中文语言包下载优化网站排名如何
  • 做外贸网站需要注意些什么问题合肥网络推广营销
  • 通栏网站今日热点新闻10条
  • 厦门市app开发网站建设公司营销网络的建设
  • 学校网站 建设措施关键词搜索工具
  • 王烨萌 俄罗斯seo入门基础教程
  • 网站秒杀小程序怎么做目前搜索引擎排名
  • 安卓游戏模板下载网站百度网盘客服人工电话95188
  • 南昌网站建设价格网络营销的优势是什么
  • 电影资源分享网站怎么做的软文推广500字
  • wordpress去除顶部厦门谷歌seo公司有哪些
  • 余姚做轴承网站龙华网站建设
  • win 搭建wordpress黑帽seo优化推广
  • html5搭建手机网站杭州网站优化培训
  • 网站制作过程中常见的问题微信小程序开发教程
  • 网站中的文字滑动怎么做的百度联盟点击广告赚钱
  • 政府机关单位网站建设方案网站生成
  • 做策划的网站推广网络培训平台有哪些
  • html网站设计实例代码原版百度
  • 网络营销工具的使用关键词优化外包服务
  • 跨境独立网站北京企业推广
  • 东莞常平镇邮政编码效果好的关键词如何优化
  • 淘宝网站建设单子好接吗竞价托管是啥意思
  • 刚开始做网站布局很吃力 怎么办站长网站查询
  • 智联招聘网站可以做两份简历吗下载百度免费
  • 上海网站设计成功柚v米科技百度网站推广申请
  • 网站欢迎页面模板下载互联广告精准营销
  • 网站的关键词策略营业推广的形式包括
  • iis网站配置 无法浏览热点事件营销案例
  • 工程建设项目在哪个网站查询seo关键词排行优化教程