http://www.cnblogs.com/agpro/archive/2010/06/23/1763536.html
STL-set用法
// 1.set::begin/end #include <iostream> #include <set> using namespace std; int main () { int myints[] = {75,23,65,42,13,13}; set<int> myset (myints,myints+6); set<int>::iterator it; cout << "myset contains:"; for ( it=myset.begin() ; it != myset.end(); it++ ) cout << "" << *it; cout << endl; return 0; } Output: myset contains: 13 23 42 65 75 // 2.set::empty #include <iostream> #include <set> using namespace std; int main () { set<int> myset; myset.insert(20); myset.insert(30); myset.insert(10); cout << "myset contains:"; while (!myset.empty()) { cout << "" << *myset.begin(); myset.erase(myset.begin()); } cout << endl; return 0; } Output:myset contains: 10 20 30 // 3.set::size #include <iostream> #include <set> using namespace std; int main () { set<int> myints; cout << "0. size: " << (int) myints.size() << endl; for (int i=0; i<10; i++) myints.insert(i); cout << "1. size: " << (int) myints.size() << endl; myints.insert (100); cout << "2. size: " << (int) myints.size() << endl; myints.erase(5); cout << "3. size: " << (int) myints.size() << endl; return 0; } Output:0. size: 0 1. size: 10 2. size: 11 3. size: 10 // 4.set::find #include <iostream> #include <set> using namespace std; int main () { set<int> myset; set<int>::iterator it; // set some initial values: for (int i=1; i<=5; i++) myset.insert(i*10); // set: 10 20 30 40 50 it=myset.find(20); myset.erase (it); myset.erase (myset.find(40)); cout << "myset contains:"; for (it=myset.begin(); it!=myset.end(); it++) cout << "" << *it; cout << endl; return 0; } Output: myset contains: 10 30 50 // 5.set::count #include <iostream> #include <set> using namespace std; int main () { set<int> myset; int i; // set some initial values: for (i=1; i<5; i++) myset.insert(i*3); // set: 3 6 9 12 for (i=0;i<10; i++) { cout << i; if (myset.count(i)>0) cout << " is an element of myset.\n"; else cout << " is not an element of myset.\n"; } return 0; } Output: 0 is not an element of myset. 1 is not an element of myset. 2 is not an element of myset. 3 is an element of myset. 4 is not an element of myset. 5 is not an element of myset. 6 is an element of myset. 7 is not an element of myset. 8 is not an element of myset. 9 is an element of myset. // 6.set::lower_bound/upper_bound #include <iostream> #include <set> using namespace std; int main () { set<int> myset; set<int>::iterator it,itlow,itup; for (int i=1; i<10; i++) myset.insert(i*10); // 10 20 30 40 50 60 70 80 90 itlow=myset.lower_bound (30); // ^ itup=myset.upper_bound (60); // ^ myset.erase(itlow,itup); // 10 20 70 80 90 cout << "myset contains:"; for (it=myset.begin(); it!=myset.end(); it++) cout << "" << *it; cout << endl; return 0; } Notice that lower_bound(30) returns an iterator to 30, whereas upper_bound(60) returns an iterator to 70. myset contains: 10 20 70 80 90 // 7.set::equal_elements #include <iostream> #include <set> using namespace std; int main () { set<int> myset; pair<set<int>::iterator,set<int>::iterator> ret; for (int i=1; i<=5; i++) myset.insert(i*10); // set: 10 20 30 40 50 ret = myset.equal_range(30); cout << "lower bound points to: " << *ret.first << endl; cout << "upper bound points to: " << *ret.second << endl; return 0; } lower bound points to: 30 upper bound points to: 40
相关推荐
### C++ STL之set容器使用方法 #### 一、引言 在C++标准模板库(STL)中,`set`容器是一种非常重要的关联容器,主要用于存储唯一元素,并且这些元素会根据其键值自动排序。`set`内部通常采用红黑树(一种自平衡的二叉...
理解并熟练使用STL是C++程序员必备的技能之一,它能帮助编写出高效、可读性强的代码。在面试中,对STL的深入理解不仅可以展示你的技术实力,还能表现出你对编程最佳实践的追求。因此,熟悉STL的各个部分并能够灵活...
C++ STL,全称为Standard Template Library(标准模板库),是C++编程语言中不可或缺的一部分,它为程序员提供了高效且灵活的编程工具。STL的核心概念包括泛型编程、容器、迭代器、算法和函数对象,这些组件共同构成...
STL 是 C++ 标准库的一部分,不用单独安装。 C++ 对模板(Template)支持得很好,STL 就是借助模板把常用的数据结构及其算法都实现了一遍,并且做到了数据结构和算法的分离。例如,vector 的底层为顺序表(数组),...
C++ stl set 求集合的交集并集差集 编译环境为dev C++
STL是C++标准库的重要组成部分,它提供了容器(如vector、list、set等)、迭代器、算法和函数对象等工具,极大地提高了C++程序员的开发效率。在这本书中,侯捷详细解读了STL的实现机制,包括模板元编程、迭代器、...
STL,全称为Standard Template Library(标准模板库),是C++编程语言中不可或缺的一部分,它为程序员提供了高效且灵活的数据结构和算法。STL的主要组件包括容器、迭代器、算法和函数对象,这些组件共同构成了一个...
C++ STL,全称为Standard Template Library(标准模板库),是C++编程语言中的一部分,它提供了丰富的容器、迭代器、算法和函数对象等组件,极大地简化了数据结构和算法的实现。余文溪的《C++ STL--数据结构与算法...
C++ STL(Standard Template Library,标准模板库)是C++编程中的一个重要组成部分,它提供了一系列高效、可重用的数据结构和算法。这个压缩包“C++ STL标准程序库开发指南 源代码.rar”包含了C++ STL的源代码,对于...
Vector容器是C++ STL中最常用的容器之一,用于存储同类型的元素。Vector容器提供了多种构造函数,例如`V(v1.begin(), v1.end())`和`V(v1)`,用于将其他容器的元素复制到Vector容器中。Vector容器也提供了多种操作,...
1. 容器:STL提供了一组预先定义好的容器类,如vector(动态数组)、list(双向链表)、deque(双端队列)、set(集合)、map(映射)等。这些容器可以存储不同类型的数据,并提供了各种操作,如插入、删除、遍历等...
C++STL详解 C++STL 库是 C++ 语言中非常重要的一部分,它提供了许多有用的容器、算法和迭代器,帮助开发者更方便地编写高效、可重用的代码。 泛型程序设计是 C++ 语言中非常重要的一部分,它允许开发者编写通用的...
这个"C++STL Source.rar"文件很可能包含了C++ STL的源代码,对于深入理解STL的工作原理和实现细节非常有帮助。 STL的核心组成部分包括: 1. 容器(Containers):这是STL的基础,提供了数据结构来存储和管理元素...
接下来,我们将围绕“深入C++STL中文版”这一主题展开详细的讲解,涵盖C++ STL的基本概念、核心组件以及如何利用STL提高编程效率等方面。 ### C++ STL简介 C++标准模板库(Standard Template Library,简称STL)是...
STL,全称为Standard Template Library(标准模板库),是C++编程语言中不可或缺的一部分,它为程序员提供了高效、灵活和可重用的容器、算法和迭代器等工具。这两本电子书《C++ STL使用教程》和《STL编程》无疑会...
**C++标准库STL手册** C++标准模板库(STL)是C++编程语言中的一个重要组成部分,它提供了一组高效、可重用的容器、迭代器、算法和函数对象,大大简化了数据结构和算法的实现。STL手册通常会详细阐述这些组件的使用...
STL则是C++中一个强大的工具集,它包含容器(如vector、list、set)、迭代器、算法和函数对象。STL的核心设计理念是泛型编程,这意味着它的组件可以应用于多种数据类型。例如,`std::vector`是一种动态数组,允许在...
模板是C++的关键特性之一,也是STL的基础。STL的容器、迭代器和算法都是模板类或模板函数,允许用户自定义数据类型,增强了代码的复用性。例如,你可以创建一个包含整型的向量(`std::vector<int>`)或包含自定义类...
"C++ STL 库函数总结" C++ STL 库函数总结是指 C++ 标准模板库...C++ STL 库函数总结中的集合(set)部分提供了一个强大的工具,用于解决实际问题。其成员函数和迭代器使得开发者可以方便地操作集合中的元素。
C++ STL,全称为Standard Template Library(标准模板库),是C++编程中极其重要的组成部分,它为程序员提供了高效且灵活的数据结构和算法。STL的主要目标是提高代码的可读性和可重用性,通过使用泛型编程和模板机制...