zoukankan      html  css  js  c++  java
  • c++ 常用标准库

    vector:

    在vc6中,如果要镶嵌使用vector, 如vector<vector<int> >, 后面的两个> 应该用,空格隔开, 否则被编译器认为是移位符

    string::npos 的值为-1或者4294967295

    string str;

    str.find(str2) 返回str2第一次在str中出现的位置, 如果不存在则返回string::npos

    str.find(str2, pos)  从str的pos号开始匹配,返回值和上面一样

    str.replace(pos, len, str2) 从str的pos位开始,长度为len的内容替换为str2

    str.replace(it, it2, str) 把迭代器[it, it2)范围的子串替换为石头人

    queue

    在调用front()或者pop()函数的时候,先判断queue是否为空, 否者导致错误

    如果要基础类型的数据升序排列,可以这样声明 priority_queue<int, vector<int>, greater<int> >; 注意最后两个符号间的空格

    如果要用自己的定义的类型就需要在结构体中定义"<"符号, 只需要定义这个符号, 否者会出错, 至于是升序排列,还是降序排列,看你自己重写的<是怎么样的了

    但是这个和cmp优点不一样,这里返回a.x<b.x得到的是降序排列的而不是升序排列的, 即作用和排序中的cmp是相反的; 

    此外,当数据量的比较大的时候, 简易形式参数引用传递, 减少数据的复制

    1 struct node{
    2     int x, y;
    3     friend operator < (node a, node b){
    4         if(a.x!=b.x) return a.x<b.x;
    5         return a.y<b.y;
    6     }
    7 };

    浮点数取绝对值要用fabs();  否则浮点数的小数部分会被截掉;

    reverse(it1, it2) 颠倒[it1, it2)之间的内容, 好像stl中的类似的函数都是左闭又开的哈

    lower_bound(first, last, key)  适用于递增序列, 在[first, last)返回第一个大于或者等于key的位置,

    upper_bounder(first, last, key) 返回第一个大于key的值

    如果是数组返回位置的指针, 如果是迭代器,返回位置的迭代器

    有疑惑或者更好的解决方法的朋友,可以联系我,大家一起探讨。qq:1546431565
  • 相关阅读:
    monkey命令
    app性能测试点
    app常见性能测试点
    httprunner中validate的比较方法总结
    ETL工具kettle基本使用
    dbvis MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1
    python操作Redis
    mongodb,redis,hbase 三者都是nosql数据库,他们的最大区别和不同定位是什么?
    Redis Desktop manger的下载安装
    Redis的参考文档
  • 原文地址:https://www.cnblogs.com/mr-stn/p/9226446.html
Copyright © 2011-2022 走看看