zoukankan      html  css  js  c++  java
  • C++ 编程技巧锦集(一)

    C++刷题精髓在STL编程,还有一些函数。下面我就总结一下本人在刷题过程中,每逢遇见总要百度的内容………………(大概率因为本人刷题太少了)

    1. map

    map<string, int> m;

    map<int, int> m;

    key-value一一对应,一个key只能有一个value,且m按key自动排序

    begin()          返回指向map头部的迭代器
    clear()         删除所有元素
    count()          返回指定元素出现的次数
    empty()          如果map为空则返回true
    end()            返回指向map末尾的迭代器
    erase()          删除一个元素
    find()           查找一个元素
    insert()         插入元素
    size()           返回map中元素的个数

    迭代:

    map<int, int> ::iterator it;
    for(it = m.begin();it != m.end();it++)
    {
        cout << it->first << it->second << endl;    
    }

    2. vector

     vector<int> vec;

    尾部插入数字:vec.push_back(a);

    使用下标访问元素,cout<<vec[0]<<endl;

    插入元素:    vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

    删除元素:    vec.erase(vec.begin()+2);删除第3个元素

    vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

    向量大小:vec.size();

    清空:vec.clear();

    迭代:

    vector<int>::iterator it;
    for(it=vec.begin();it!=vec.end();it++)
        cout<<*it<<endl;

    3. set

     set<int> s;

    begin()--返回指向第一个元素的迭代器

    clear()--清除所有元素

    count()--返回某个值元素的个数

    empty()--如果集合为空,返回true

    end()--返回指向最后一个元素的迭代器

    erase()--删除集合中的元素

    find()--返回一个指向被查找到元素的迭代器

    insert()--在集合中插入元素

    size()--集合中元素的数目

    swap()--交换两个集合变量

    迭代:

    set<int>::iterator it;
    for(it=s.begin();it!=s.end();it++)
        cout<<*it<<endl;

    4. queue

     queue<int> q;

    入队,q.push(x); 将x 接到队列的末端。
    出队,q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
    访问队首元素,q.front(),即最早被压入队列的元素。
    访问队尾元素,q.back(),即最后被压入队列的元素。
    判断队列空,q.empty(),当队列空时,返回true。
    访问队列中的元素个数,q.size()

    while(!q.empty())
    {
        q.front();
        q.pop();  
    }

    5. priority_queue

    https://blog.csdn.net/weixin_36888577/article/details/79937886
    priority_queue <int,vector<int>,greater<int> > q;      //升序队列
    priority_queue <int,vector<int>,less<int> >q;           //降序队列
    greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)

    和队列基本操作相同:

    • top 访问队头元素
    • empty 队列是否为空
    • size 返回队列内元素个数
    • push 插入元素到队尾 (并排序)
    • emplace 原地构造一个元素并插入队列
    • pop 弹出队头元素
    • swap 交换内容

    6. stack

    stack<int> s1;
    stack<string> s2;
    入栈,s.push(x);
    出栈,s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。
    访问栈顶,s.top()
    判断栈空,s.empty(),当栈空时,返回true。
    访问栈中的元素个数,s.size()。

    while(!s.empty())
    {
        s.top();
        s.pop();  
    }
  • 相关阅读:
    绑定下拉列表
    部署WSP出现错误—已在此服务器场中安装ID为XXXXX的功能
    sharepoint权限
    sql日期操作
    Sql脚本动态创建表
    sharepoint中添加子网站
    解决未知的服务器标记“asp:ListView”。
    sharepoint中新添加页面
    vue中使用localStorage存储信息
    Js事件大全
  • 原文地址:https://www.cnblogs.com/zcl843264327/p/11192286.html
Copyright © 2011-2022 走看看