数据结构2-集合(set)

集合(set)

就是我们数学上学习的集合,特点就是具有互异性,在C++中STL里的集合还会自带排序功能

使用条件:是由一些不重复的数据组成的
优点:自带排序,由于其不重复的特性,好多诸如字符串统计就可以不用C++比较函数,轻松完成。
注意:自定义类型要求写比较函数
函数:

  • XXX.insert()插入元素
  • XXX.erase()删除元素
  • XXX.count()判断是否在元素中
  • XXX.size()获取元素个数
  • XXX.clear()清空

实例:
1.声明与定义:

#include 
setXXX;

2.插入元素
注意如果集合中已经存在了某个元素,再次插入不会产生任何效果,集合中是不会出现重复元素的。

#include 
#include 
using namespace std;
int main() {
    set<string> country;  // {}
    country.insert("China"); // {"China"}
    country.insert("America"); // {"China", "America"}
    country.insert("France"); // {"China", "America", "France"}
    return 0;
}

3.删除元素

#include 
#include 
using namespace std;
int main() {
    set<string> country;  // {}
    country.insert("China"); // {"China"}
    country.insert("America"); // {"China", "America"}
    country.insert("France"); // {"China", "America", "France"}
    country.erase("America"); // {"China", "France"}
    country.erase("England"); // {"China", "France"}
    return 0;
}

4.查找元素(返回1/0)

#include 
#include 
#include 
using namespace std;
int main() {
    set<string> country;  // {}
    country.insert("China"); // {"China"}
    country.insert("America"); // {"China", "America"}
    country.insert("France"); // {"China", "America", "France"}
    if (country.count("China")) {
        printf("China belong to country");
    }
    return 0;
}

5.遍历元素(注意迭代器的使用)

#include 
#include 
#include 
using namespace std;
int main() {
    set<string> country;  // {}
    country.insert("China"); // {"China"}
    country.insert("America"); // {"China", "America"}
    country.insert("France"); // {"China", "America", "France"}
    if (country.count("China")) {
        printf("China belong to country");
    }
    return 0;
}

6.清空

XXX.clear();

你可能感兴趣的:(算法学习总结,#,数据结构)