c++STL基本用法

vector<变量>,变长数组,倍增思想
    vector<int> a(10,3);  容量为10的向量,其中元素均为3
    size() 返回元素个数
    empty()     判空
    clear()     清空
    front()/back()  第一个/最后一个元素
    push_back()/pop_back()  向最后插入一个元素/删除最后一个数
    begin()/end()   迭代器
    支持比较运算(按字典序比较)
    vector<int> a(4,3),b(3,4)
        a < b;
    []      随即存取
遍历方法
    for(int i = 0;i < 10;i++)
        a.push_back();
    for(int i = 0;i <a.size();i++)
        cout<<a[i]<" ";
    for(vectoe<int>::iterator/auto i = a.begin();i != a.end();i++)
        cout<<a[i](*i)<<" "
    for(auto x : a)
        cout<<x<<" ";


pair<变量,变量> 可以存储一个二元组
    pair<int,int> a
    第一个元素为 a.first   第二个元素为 a.second
    支持比较运算(first为第一关键字,second为第二关键字)
    pair<int,string> p;
    p = make_pair(10,"aaa");/p = {20,"aaaa"};
    也可以 pair<int,pair<int,int> >p;可以用来存储三个东西

string,字符串
    size()/length()
    empty()
    clear()
    字符串连接可以直接用 +
    string a = "ab";
    a += "cd";  a = abcd;
    substr(n,m)  字符串下标从a开始长度为m的字串(若超出字符串长度,输出到最后一个字符为止)
    a.substr(1,2);  bc
    a.substr(1,5)   bcd
    a.substr(1)     bcd
    a.c_str 返回字符串a的起始地址

queue<变量> 队列
    push()  在队尾插入一个元素
    pop()   删除队首
    front() 获取队首
    back()  获取队尾
    empty() 判空

priority_queue<变量>  优先队列(堆),默认大根堆
    size()
    empty()
    push()  插入一个元素
    pop()   删除堆顶元素
    top()   返回堆顶元素
    获取小根堆的方法
        1.push(-x)
        2.priority_queue<int,vector<int>,greater<int>> heap

stack<变量>size()
    empty()
    push()  往栈顶插入一个元素
    pop()   弹出栈顶
    top()   获取栈顶

deque,双端队列
    size()
    empty()
    clear()
    front()
    back()
    push_back()/pop_back()
    push_front()/pop_front()
    []      随机存取
    begin()/end()

set,multiset,map,multimap
    size()
    empty()
    clear()
    begin()/end() ++ -- 返回前驱 后继
    set,不允许有重复元素/multiset,允许有重复元素
        insert()    插入一个数
        find()      查找一个数(如果不存在,返回end())
        count()     返回某一个数的个数
        erase()
            1.输入的是一个数x,删除所有的x  O(k + logn)k是x的个数
            2.输入的是一个迭代器,删除这个迭代器
        lower_bound(x)   返回大于等于x的最小的数的迭代器 (如果不存在,返回end())
        upper_bound(x)   返回大于x的最小的数的迭代器 (如果不存在,返回end())

    map\multimap
        insert()    插入的是一个pair
        erase()     输入的参数是pair或者迭代器
        find()
        []  随机存取    O(logn)
        map<string,int> a;
        a["aaa"] = 1;
        lower_bound(x)   返回大于等于x的最小的数的迭代器 (如果不存在,返回end())
        upper_bound(x)   返回大于x的最小的数的迭代器 (如果不存在,返回end())
unordered_set,unordered_multiset,unordered_map,unordered_multimap
    和上面类似,增删改查的时间复杂度是O(1)
    不支持  lower_bound(x)/upper_bound(x),迭代器的++--(与排序有关的操作都不支持)

bitset,压位(八分之一空间)
    bitset<10000> s;
    ~,&,|,^
    >>,<<
    ==,!=
    []
    count()     返回有多少个1
    any()       判断是否至少有一个1
    none()      判断是否全为0

    set()       把所有位置为1
    set(k,v)    将第k位变成v
    reset()     把所有位置0
    flip()      等价于~
    flip(k)     把第k位取反
  
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值