Psl/stl

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

List / iterator

#include <list>
#include <cstdio>

using namespace std;

list<int> lst;

main()
{
  lst.push_back(10);
  lst.push_back(20);
  lst.push_back(30);

  list<int>::iterator i = lst.begin();
  while(i != lst.end()) {
    printf("%d\n", *i);
    i++;
  }
}

erase โดยระบุ iterator

#include <list>
#include <cstdio>

using namespace std;

list<int> lst;

void print_list(list<int>& lst)
{
  list<int>::iterator i = lst.begin();
  while(i != lst.end()) {
    printf("%d\n", *i);
    i++;
  }
}

main()
{
  lst.push_back(10);
  lst.push_back(20);
  list<int>::iterator i20 = lst.end();
  i20--;
  lst.push_back(30);

  print_list(lst);
  printf("-----\n");
  lst.erase(i20);
  print_list(lst);
}

Set

#include <set>
#include <cstdio>

using namespace std;

set<int> iset;

void print_set(set<int>& s)
{
  for(set<int>::iterator i = s.begin();
      i != s.end(); ++i) {
    printf("%d\n", *i);
  }
}

main()
{
  set<int> s;
  s.insert(10);
  s.insert(100);
  s.insert(50);
  s.insert(30);

  print_set(s);

  s.insert(-100);
  printf("%d\n",*(s.begin()));
  s.insert(-200);
  printf("%d\n",*(s.begin()));
  s.insert(-150);
  printf("%d\n",*(s.begin()));

  set<int>::iterator i = s.find(-200);
  if(i != s.end()) {
    s.erase(i);
  }
  printf("%d\n",*(s.begin()));
}