1. 局部变量的作用域只在生成它的代码块内有效,出了代码块就会被销毁。

    可以用引用,指针;匿名函数;

    1. 对于pair类似复合的数据对象,在用vector>vec容器时,循环遍历可以:

    for (auto &[ch, num] : vec) {}
    而且对其按int的键值对排序时sort(vec.begin(),vec.end(),[](pair<char,int>a,pair<char,int>b){ return a.second>b.second});
    以及sort()源码分析和该方法适合哪些容器

    • vector和deque拥有随机访问迭代器,因此它们可以使用std::sort排序;
    • 对于所有的无序关联式容器而言,它们只有前向迭代器,因而无法调用std::sort。但我认为更为重要的是,从它们名称来看,本身就是无序的,它们底层是用哈希表来实现。它们的作用像是字典,为的是根据key快速访问对应的元素,所以对其排序是没有意义的。
    • 对于所有的关联式容器如map和set,由于它们底层是用红黑树实现,因此已经具有了自动排序功能,不需要std::sort。
    1. void sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);

      sort (first,finish,[]->(Type a,Type b){ return a>b; };

    或者操作符重载函数写在自定义类内,这样sort()排序是就不一样了。