STL容器使用DEMO-set
2009-08-24 16:31
375 查看
Code:
//////////////////////////////////////////////////////////////////////////
// CopyRight(c) 2009, YOYO, All Rights Reserved.
// Author: LIN YiQian
// Created: 2009/08/24
// Describe: STL set 使用DEMO
//////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <set>
using namespace std;
typedef set<int> INT_SET;
// 打印Set
void PrintSet(INT_SET setInt)
{
for (INT_SET::iterator setIntIter = setInt.begin(); setIntIter != setInt.end(); ++setIntIter)
{
cout << (*setIntIter) << " ";
}
cout << endl;
}
// 反向打印Set
void PrintSetReverse(INT_SET setInt)
{
for (INT_SET::reverse_iterator setIntIter = setInt.rbegin(); setIntIter != setInt.rend(); ++setIntIter)
{
cout << (*setIntIter) << " ";
}
cout << endl;
}
// 打印指定范围的Set
void PrintSetRange(INT_SET setInt, INT_SET::value_type low, INT_SET::value_type up)
{
for (INT_SET::iterator setIntIter = setInt.lower_bound(low); setIntIter != setInt.upper_bound(up); ++setIntIter)
{
cout << (*setIntIter) << " ";
}
cout << endl;
}
void main(void)
{
INT_SET setInt;
cout << "New Int Set: "; PrintSet(setInt);
// insert()
{
setInt.insert(3);
setInt.insert(2);
setInt.insert(1);
setInt.insert(4);
cout << "After Insert: "; PrintSet(setInt);
}
// test insert() again
{
setInt.insert(3); // fail
setInt.insert(5); // success
setInt.insert(7); // success
setInt.insert(4); // fail
setInt.insert(8); // success
setInt.insert(9); // success
cout << "After Insert again: "; PrintSet(setInt);
}
// reverse()
{
cout << "Set Reverse: "; PrintSetReverse(setInt);
}
// range()
{
cout << "Set Range(low-3, up-8): "; PrintSetRange(setInt, 3, 8);
}
// size() & max_size()
{
cout << "Set size: " << setInt.size() << endl;
cout << "Set max_size: " << setInt.max_size() << endl;
}
// empty()
{
cout << "Set Empty?: " << boolalpha << setInt.empty() << endl;
}
// find()
{
cout << "Value 7 find?: " << boolalpha << (setInt.find(7) != setInt.end()) << endl;
cout << "Value 6 find?: " << boolalpha << (setInt.find(6) != setInt.end()) << endl;
}
// count()
{
cout << "Value 3 count: " << setInt.count(3) << endl;
cout << "Value -5 count: " << setInt.count(-5) << endl;
}
// clear()
{
setInt.clear();
cout << "After Clear: "; PrintSet(setInt);
cout << "Set size: " << setInt.size() << endl;
cout << "Set Empty?: " << boolalpha << setInt.empty() << endl;
}
system("pause");
}
//////////////////////////////////////////////////////////////////////////
// CopyRight(c) 2009, YOYO, All Rights Reserved.
// Author: LIN YiQian
// Created: 2009/08/24
// Describe: STL set 使用DEMO
//////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <set>
using namespace std;
typedef set<int> INT_SET;
// 打印Set
void PrintSet(INT_SET setInt)
{
for (INT_SET::iterator setIntIter = setInt.begin(); setIntIter != setInt.end(); ++setIntIter)
{
cout << (*setIntIter) << " ";
}
cout << endl;
}
// 反向打印Set
void PrintSetReverse(INT_SET setInt)
{
for (INT_SET::reverse_iterator setIntIter = setInt.rbegin(); setIntIter != setInt.rend(); ++setIntIter)
{
cout << (*setIntIter) << " ";
}
cout << endl;
}
// 打印指定范围的Set
void PrintSetRange(INT_SET setInt, INT_SET::value_type low, INT_SET::value_type up)
{
for (INT_SET::iterator setIntIter = setInt.lower_bound(low); setIntIter != setInt.upper_bound(up); ++setIntIter)
{
cout << (*setIntIter) << " ";
}
cout << endl;
}
void main(void)
{
INT_SET setInt;
cout << "New Int Set: "; PrintSet(setInt);
// insert()
{
setInt.insert(3);
setInt.insert(2);
setInt.insert(1);
setInt.insert(4);
cout << "After Insert: "; PrintSet(setInt);
}
// test insert() again
{
setInt.insert(3); // fail
setInt.insert(5); // success
setInt.insert(7); // success
setInt.insert(4); // fail
setInt.insert(8); // success
setInt.insert(9); // success
cout << "After Insert again: "; PrintSet(setInt);
}
// reverse()
{
cout << "Set Reverse: "; PrintSetReverse(setInt);
}
// range()
{
cout << "Set Range(low-3, up-8): "; PrintSetRange(setInt, 3, 8);
}
// size() & max_size()
{
cout << "Set size: " << setInt.size() << endl;
cout << "Set max_size: " << setInt.max_size() << endl;
}
// empty()
{
cout << "Set Empty?: " << boolalpha << setInt.empty() << endl;
}
// find()
{
cout << "Value 7 find?: " << boolalpha << (setInt.find(7) != setInt.end()) << endl;
cout << "Value 6 find?: " << boolalpha << (setInt.find(6) != setInt.end()) << endl;
}
// count()
{
cout << "Value 3 count: " << setInt.count(3) << endl;
cout << "Value -5 count: " << setInt.count(-5) << endl;
}
// clear()
{
setInt.clear();
cout << "After Clear: "; PrintSet(setInt);
cout << "Set size: " << setInt.size() << endl;
cout << "Set Empty?: " << boolalpha << setInt.empty() << endl;
}
system("pause");
}
相关文章推荐
- STL容器使用DEMO-vector
- STL容器使用DEMO-queue
- STL容器使用DEMO-bitset
- STL中的容器使用比较(string vector list deque set map)
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- STL容器使用DEMO-deque
- STL容器使用DEMO-list
- STL容器 list、vector、map、set 使用的陷阱
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- STL容器使用DEMO-map
- STL容器Set和Multisets使用
- STL容器使用DEMO-multimap
- stl容器区别(内存布局和使用场合): vector list deque set map
- STL之关联容器(pair、map、set的使用)
- STL容器Set的使用
- STL容器使用DEMO-multiset
- STL容器使用DEMO-priority_queue
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- STL之关联容器(pair、map、set的使用)
- C++ STL容器的学习使用(vector、queue、list、set、map)