java中往集合添加数据调用add();方法就行
//第一步先创建一个set集合的子类
HashSet has=new HashSet<>()
//给set集合添加的方法是add()
has.add(args)
资料拓展:Collection接口可以存放重复元素,也可以存放不重复元素。List可以存放重复元素,Set就是不重复的元素。
通过元素的equals方法,来判断是否为重复元素。
Set集合取出元素的方式可以采用:迭代器,增强 for
set的基本 *** 作:
begin() 返回指向第一个元素的迭代器
clear() 清除所有元素
count() 返回某个值元素的个数
empty() 如果集合为空,返回true
end() 返回指向最后一个元素的迭代器
equal_range() 返回集合中与给定值相等的上下限的两个迭代器
erase() 删除集合中的元素
find() 返回一个指向被查找到元素的迭代器
get_allocator() 返回集合的分配器
insert() 在集合中插入元素
lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器
key_comp() 返回一个用于元素间值比较的函数
max_size() 返回集合能容纳的元素的最大限值
rbegin() 返回指向集合中最后一个元素的反向迭代器
rend() 返回指向集合中第一个元素的反向迭代器
size() 集合中元素的数目
swap() 交换两个集合变量
upper_bound() 返回大于某个值元素的迭代器
value_comp() 返回一个用于比较元素间的值的函数
5,自定义比较函数:
For example:
#include<iostream>#include<set>
using namespace std
typedef struct {
int a,b
char s
}newtype
struct compare //there is no ().
{
bool operator()(const newtype &a, const newtype &b) const
{
return a.s<b.s
}
}//the “ ” is here
set<newtype,compare>element
int main()
{
newtype a,b,c,d,t
a.a=1 a.s='b'
b.a=2 b.s='c'
c.a=4 c.s='d'
d.a=3 d.s='a'
element.insert(a)
element.insert(b)
element.insert(c)
element.insert(d)
set<newtype,compare>::iterator it
for(it=element.begin() it!=element.end()it++)
cout<<(*it).a<<" "
cout<<endl
for(it=element.begin() it!=element.end()it++)
cout<<(*it).s<<" "
}
element自动排序是按照char s的大小排序的;
6.其他的set构造方法;
#include <iostream>#include <set>
using namespace std
bool fncomp (int lhs, int rhs) {return lhs<rhs}
struct classcomp {
bool operator() (const int& lhs, const int& rhs) const
{return lhs<rhs}
}
int main ()
{
set<int> first // empty set of ints
int myints[]= {10,20,30,40,50}
set<int> second (myints,myints+5) // pointers used as iterators
set<int> third (second) // a copy of second
set<int> fourth (second.begin(), second.end()) // iterator ctor.
set<int,classcomp> fifth // class as Compare
bool(*fn_pt)(int,int) = fncomp
set<int,bool(*)(int,int)> sixth (fn_pt) // function pointer as Compare
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)