• STL标准函数库学习小总结


    浅谈STL(未完)
    前言:
    (1)学习资料——《算法笔记》第六章、《常用基础数据结构》文档

    (2)测试平台——Codeup新家(《算法笔记》对应OJ)、洛谷、YCOJ

    (3)学习时间——2020.6.2~



    学习内容汇总:

    一、Vector

    1、简介:vector向量,也叫“变长数组”

    2、运用:

    (1)定义:vector<typename> name;
      
      注意:typename可以是任意类型,但如果typename也是一个STL容器,则在“>>”之间需要打空格;name也可以是数组
      
      (2)访问:①直接通过下标访问(0~size()-1)
      
      ②通过迭代器访问:vector<typename>::iterator it;
      
      注意:只有vector和string支持*(it+i)的访问方式
      
      (3)操作:①添加push_back()
      
      ②删除pop_back() 
      
      ③插入insert()
      
      ④清空clear()
      
      ⑤删除erase(it)或erase(first,last)
      
      ⑥长度size()
      
      (4)常见用途:①因为可以“变长”,所以对于储存数据很好用
      
      ②用邻接表存储图

    3、题目:

    (1)http://codeup.cn/contest.php?cid=100000596 (Codeup两道)

    (2)打印锯齿矩阵(计蒜客)


     二、Set

    1、简介:set集合,可将元素去重并升序排列

    2、运用:

    (1)定义:set<typename> name; 注意同上

    (2)访问:只能通过迭代器:set<typename>::iterator it;

    (3)操作:①插入insert()

    ②返回set中对应值为value的迭代器find(value)

    ③删除erase(it)或erase(value)或erase(first,last)

    ④长度size()

    ⑤清空clear()

    (4)常见用途:主要用于处理元素去重并排序的问题

    (5)补充:①不去重只升序:multiset  ②只去重不升序:unordered_set

    3、题目:

    (1)http://codeup.cn/contest.php?cid=100000597  (Codeup)

    (2)http://120.77.248.79/problem/2021102  计算集合的并(YCOJ)



     三、String

    1、简介:string用于处理字符串

    2、运用:

    (1)定义:string s;

    (2)读入读出:cin和cout

    (3)迭代器:string::iterator it;

    (4)可将两个string直接拼凑起来或进行比较大小(规则是字典序)

    (5)操作:①长度length()或size()

    ②在pos位插入strinsert(pos,str)或将【it2,it3)插入到it的的位置insert(it,it2,it3)

    ③删除同vector或从pos位开始删除length个字符erase(pos,length)

    ④清空clear()

    ⑤返回从pos位开始长度为len的子串substr(pos,len)

    ⑥当str是s的子串时返回str第一次出现的位置find(str)或从s的pos位开始匹配str,返回值同上find(str,pos)

    ⑦把s从pos位开始、长度为len的子串替换为strreplace(pos,len,str)或把s的迭代器【it2,it3)范围的子串替换为strrelace(it2,it3,str)

    3、题目:

    (1)http://codeup.cn/contest.php?cid=100000598  字符串处理(Codeup)



    四、Map

    1、简介:map映射,将任一类型映射到任一类型且会按键自动升序

    2、运用:

    (1)定义:map<typename1,typename2> name;typename1为键的类型,typename2为映射值的类型

    (2)访问:①通过下标访问,因为键的值唯一

    ②迭代器map<typename1,typename2>::iterator it;,然后用it->first来访问键、用it->second来访问值

    (3)操作:①查找键为key的迭代器find(key)

    ②删除erase(it)或erase(key)删除键key或删除区间erase(first,last)

    ③长度size()

    ④清空clear()

    3、常见用途:①字符与整数之间的关系

    ②map当作bool用

    ③字符串与字符串的映射

    4、补充:一个键对应多个值,multimap

    5、题目:

    (1)http://codeup.cn/contest.php?cid=100000599  (Codeup)

    (2)蒜头军破案——二维map  (计蒜客)

    (3)蒜头军的藏书——字符串与整数  (计蒜客)

    (4)小信学英语——字符串与整数  (YCOJ)

    (5)小信的面试  (YCOJ)

    (6)水果店——二维map  (YCOJ)

  • 相关阅读:
    SqlServer查询优化方法
    关于导入excel问题
    修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
    软件架构之我见
    算法-插入排序
    算法-快速排序
    WCF系列 Restful WCF
    WCF系列 基础概念
    cocos2dx-是男人就坚持20s 练手项目
    nodejs 聊天室简单实现
  • 原文地址:https://www.cnblogs.com/Eleven-Qian-Shan/p/13039931.html
Copyright © 2020-2023  润新知