C++的set和multiset容器

1.基本概念

2.set的构造和赋值

void test01() {					
	set<int> s1;
	s1.insert(50);
	s1.insert(20);
	s1.insert(10);
	s1.insert(90);
	s1.insert(10);
	cout << "集合s1 ";
	printset(s1);

	set<int> s2(s1);			//拷贝构造函数赋值
	cout << "集合s2"<<" ";
	printset(s2);


	set<int>s3;				// =运算符赋值
	s3 = s2;
	cout << "集合s3" << " ";
	printset(s3);
}

3.set的大小和交换

//set的大小和交换测试函数
void test02() {
	set<int> s1;
	s1.insert(50);
	s1.insert(20);
	s1.insert(10);
	s1.insert(90);
	s1.insert(10);

	set<int> s2;
	s2.insert(60);
	s2.insert(70);
	s2.insert(80);
	s2.insert(90);
	s2.insert(10);

	set<int> s3;

	cout << "集合s1的大小 " << s1.size() << endl;
	cout << "集合s2的大小 " << s2.size() << endl;

	cout << s1.empty() << endl;
	cout << s3.empty() << endl;

	cout << "交换前 " << endl;
	printset(s1);
	printset(s2);
	cout << "交换后" << endl;
	s1.swap(s2);
	printset(s1);
	printset(s2);
	
}

4.set的插入和删除

//set的插入和删除测试函数
void test03() {
	set<int> s1;			//通过insert()函数插入集合中
	s1.insert(50);
	s1.insert(20);
	s1.insert(10);
	s1.insert(90);
	s1.insert(10);

	cout << "删除前s1" << endl;
	printset(s1);
	cout << "删除后s1" << endl;
	s1.clear();					//clear()函数清空所有元素
	printset(s1);

	set<int> s2;
	s2.insert(60);
	s2.insert(70);
	s2.insert(80);
	s2.insert(90);
	s2.insert(10);
	cout << "s2" << endl;
	printset(s2);	
	s2.erase(s2.begin());		
	cout << "删除s2的头元素后" << endl;
	printset(s2);
	s2.erase(90);			//删除值为90的元素
	cout << "删除值为90元素后" << endl;
	printset(s2);
}

 

5.set的查找和统计

void test04() {
	set<int> s1;
	s1.insert(50);
	s1.insert(20);
	s1.insert(10);
	s1.insert(90);
	s1.insert(10);

	set<int>::iterator pos = s1.find(30);

	if (pos != s1.end()) {
		cout << "元素已找到" << endl;
	}
	else {
		cout << "元素未找到" << endl;
	}

	cout << s1.count(20) << endl;
}

 

6.set和multiset的区别

//set和multiset的区别测试函数
void test05() {
	set<int> s1;
	multiset<int> m1;

	s1.insert(50);
	s1.insert(20);
	s1.insert(10);
	s1.insert(90);
	s1.insert(10);

	m1.insert(50);
	m1.insert(20);
	m1.insert(10);
	m1.insert(90);
	m1.insert(10);

	printset(s1);
	for (multiset<int>::iterator it = m1.begin(); it != m1.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
}

 

7.pair对组创建

void test06() {
	pair<string, int> p1("Tom", 12);
	pair<string, int> p2 = make_pair("K", 22);
	cout << p1.first << " " << p1.second << endl;
	cout << p2.first << " " << p2.second << endl;
}

 

发布了54 篇原创文章 · 获赞 14 · 访问量 3608

猜你喜欢

转载自blog.csdn.net/q2511130633/article/details/104494393
今日推荐