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 
#include 

using namespace std;

int main() {
    ifstream infile;
    infile.open("input1.txt");
    
    int loopnum, friendnum;
    string str;
    set 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;
}

你可能感兴趣的:(C++关联容器set)