C++关联容器set

顺序容器包括vector、deque、list、forward_list、array、string,所有顺序容器都提供了快速顺序访问元素的能力。

关联容器包括set、map

关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的。与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。

set内部采用红黑树作为数据结构

set具备以下特点
·set中的元素都是排序好的
·set中的元素都是唯一的,没有重复的

常见方法
begin(); // 返回指向第一个元素的迭代器
end(); // 返回指向最后一个元素的迭代器
clear(); // 清除所有元素
count(); // 返回某个值元素的个数

find(); //返回一个指向被查找到元素的迭代器
insert(); //在集合中插入元素

demo (PTA L1-020)

#include <iostream>
#include <set>

using namespace std;

int main() {
    ifstream infile;
    infile.open("input1.txt");
    
    int loopnum, friendnum;
    string str;
    set<string> friends, out;

    infile >> loopnum;
    for (int i = 0; i < loopnum; i++) {
        infile >> friendnum;
        if (friendnum < 2) {
            infile >> str;
        }
        else {
            for (int j = 0; j < friendnum; j++) {
                infile >> str;
                friends.insert(str);
            }
        }
    }

    int num_search, flag = 0;
    infile >> num_search;
    for (int i = 0; i < num_search; i++) {
        infile >> str;
        if (friends.find(str) == friends.end() && out.find(str) == out.end()) {
            out.insert(str);
            if (flag > 0)
                cout << " ";
            cout << str;
            flag = 1;
        }
    }
    if (flag > 0)
        cout << endl;
    else {
        cout << "No one is handsome" << endl;
    }

    infile.close();
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,154评论 1 51
  • 1. 使用关联容器 2. 关联容器概述2.1 定义关联容器2.2 关键字类型的要求2.3 pair类型 3. 关联...
    MrDecoder阅读 3,392评论 0 0
  • STL部分 1.STL为什么广泛被使用 C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vec...
    杰伦哎呦哎呦阅读 9,804评论 0 9
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,079评论 0 4
  • Integer++ 在写一个线程同步的demo的时候,想用Integer作为对象传入各个Runnable中作为fl...
    HWilliamgo阅读 6,330评论 0 1

友情链接更多精彩内容