模版-set使用
来源:互联网 发布:淘宝上传图片大小限制 编辑:程序博客网 时间:2024/06/06 18:25
/*
set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。
1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素
2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数
3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)
*/
#include <iostream>
#include <set>
using namespace std;
struct strLess
{
bool operator() (const char *s1, const char *s2) const
{
return strcmp(s1, s2) < 0;
}
};
int main()
{
set<int>::iterator it;
set<int> s1;//创建空的set对象,元素类型为int,
set<char*, strLess> s2( strLess); //创建空的set对象,元素类型char*,比较函数对象(即排序准则)为自定义strLess
set<int> s3(s1); //利用set对象s1,拷贝生成set对象s2
int iArray[] = {13, 32, 19};
set<int> s4(iArray, iArray + 3);//用迭代区间[&first, &last)所指的元素,创建一个set对象
char* szArray[] = {"hello", "dog", "bird" };
set<const char*, strLess> s5(szArray, szArray + 3, strLess() );//用迭代区间[&first, &last)所指的元素,及比较
//函数对象strLess,创建一个set对象
for (int i = 0; i <5 ; i++)s1.insert(i*10);//元素插入:
//元素删除
s1.erase(iter);//1,size_type erase(value) 移除set容器内元素值为value的所有元素,返回移除的元素个数
it=s1.begin();
s1.erase(it);//2,void erase(&pos) 移除pos位置上的元素,无返回值
s4.erase(iArray, iArray + 3);//3,void erase(&first, &last) 移除迭代区间[&first, &last)内的元素,无返回值
s1.clear();//4,移除set容器内所有元素
//元素查找
int num=s1.count(10);//count(value)返回set对象内元素值为value的元素个数
it=s.find(10);//iterator find(value)返回value所在位置,找不到value将返回end()
it=s4.begin();//set的开头
it=s4.end();//set的最后一个的后一个,调用set最后一个的时候使用*(it-1)
}
set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。
1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素
2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数
3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)
*/
#include <iostream>
#include <set>
using namespace std;
struct strLess
{
bool operator() (const char *s1, const char *s2) const
{
return strcmp(s1, s2) < 0;
}
};
int main()
{
set<int>::iterator it;
set<int> s1;//创建空的set对象,元素类型为int,
set<char*, strLess> s2( strLess); //创建空的set对象,元素类型char*,比较函数对象(即排序准则)为自定义strLess
set<int> s3(s1); //利用set对象s1,拷贝生成set对象s2
int iArray[] = {13, 32, 19};
set<int> s4(iArray, iArray + 3);//用迭代区间[&first, &last)所指的元素,创建一个set对象
char* szArray[] = {"hello", "dog", "bird" };
set<const char*, strLess> s5(szArray, szArray + 3, strLess() );//用迭代区间[&first, &last)所指的元素,及比较
//函数对象strLess,创建一个set对象
for (int i = 0; i <5 ; i++)s1.insert(i*10);//元素插入:
//元素删除
s1.erase(iter);//1,size_type erase(value) 移除set容器内元素值为value的所有元素,返回移除的元素个数
it=s1.begin();
s1.erase(it);//2,void erase(&pos) 移除pos位置上的元素,无返回值
s4.erase(iArray, iArray + 3);//3,void erase(&first, &last) 移除迭代区间[&first, &last)内的元素,无返回值
s1.clear();//4,移除set容器内所有元素
//元素查找
int num=s1.count(10);//count(value)返回set对象内元素值为value的元素个数
it=s.find(10);//iterator find(value)返回value所在位置,找不到value将返回end()
it=s4.begin();//set的开头
it=s4.end();//set的最后一个的后一个,调用set最后一个的时候使用*(it-1)
}
- 模版-set使用
- STL标准模版库---set操作
- IDEA插件开发初体验之(GET/SET自动生成带模版注释插件的开发与使用)
- 使用模版类作为模版参数
- C++模版使用
- dataGridView使用模版列
- C++模版使用
- 模版的简单使用
- formview 的模版使用
- Spring使用Velocity模版
- C++模版的使用
- eclipse 模版的使用
- mysql 游标使用模版
- 简单模版的使用
- makefile通用模版使用
- 导出word使用模版
- 使用SublimeTmpl 自定义模版
- 使用模版的程序设计
- MATLAB画图命令zz
- 天气预报效果
- 小明系列故事——师兄帮帮忙(hdu 4506,推论题)
- 检查adb 配置
- 过山车
- 模版-set使用
- dsPIC33F之PWM interrupt
- Ignatius and the Princess I(hdu1026,带权值的bfs)
- [九度剑指offer] 1384
- 手机话费
- solr分布式搜索源码分析
- 学习Web 开发技术的16个国外最佳教程网站和博客
- 机器学习中的算法-支持向量机(SVM)基础
- Drainage Ditches