顺序容器包括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;
}