Adt lab/stl sets and maps
		
		
		
		
		
		
		ไปยังการนำทาง
		ไปยังการค้นหา
		
		
		
		
		
		
		
		
	
- This is part of adt lab.
 
Examples
set - insert and find
#include <set>
#include <iostream>
using namespace std;
set<int> s;
main()
{
  s.insert(10);
  s.insert(20);
  s.insert(1000);
  s.insert(25);
  cout << (s.find(1) != s.end()) << endl;
  cout << (s.find(2) != s.end()) << endl;
  cout << (s.find(10) != s.end()) << endl;
  cout << (s.find(50) != s.end()) << endl;
  cout << (s.find(1000) != s.end()) << endl;
  for(set<int>::iterator i = s.begin();
      i != s.end();
      i++) {
    cout << *i << endl;
  }
}
set - using pair to prevent key clashing
#include <set>
#include <iostream>
using namespace std;
int n;
typedef pair<int,int> int_pair;
set<int_pair> s;
main()
{
  cin >> n;
  for(int i=0; i<n; i++) {
    int x;
    cin >> x;
    s.insert(make_pair(x,i));
  }
  for(set<int_pair>::iterator i = s.begin();
      i != s.end(); i++) {
    cout << i->first << endl;
  }
}
map - insertion and find
#include <map>
#include <iostream>
using namespace std;
map<int,int> m;
main()
{
  m[100] = 0;
  m[200] = 1000;
  m[1000000000] = -1;
  m[10000000] = 12345;
  cout << m[10000000] << endl;
  cout << (m.find(1000) != m.end()) << endl;
  for(map<int,int>::iterator i = m.begin();
      i != m.end(); i++) {
    cout << i->first << " -> " << i->second << endl;
  }
}