STL——map、set等红黑树结构的最后一个元素

map、set等背后由于红黑树的关系,插入元素后便成为“平衡”搜索树了,所以末尾元素默认为最大值,得到该值的方法:

1. 利用 rbegin() 反向迭代器

int main(int argc, char *argv[])
{
    mapans;
    ans.insert(pair(2,0));
    ans.insert(pair(1,0));
    ans.insert(pair(0,0));

    map::reverse_iterator a = ans.rbegin();
    cout<first<

关于反向迭代器,官方的例子是:

// map::rbegin/rend
#include 
#include 

int main ()
{
  std::map mymap;

  mymap['x'] = 100;
  mymap['y'] = 200;
  mymap['z'] = 300;

  // show content:
  std::map::reverse_iterator rit;
  for (rit=mymap.rbegin(); rit!=mymap.rend(); ++rit)
    std::cout << rit->first << " => " << rit->second << '\n';

  return 0;
}

 

 

2.利用end--

int main()
{
    seta;
    a.insert(2);
    a.insert(1);
    a.insert(0);
    set::iterator iter = a.end();
    iter--;
    cout<<(*iter)<

 

你可能感兴趣的:(STL,map,set,rbegin)