算法笔记练习(六)

Vector–>变长数组

  • 定义:
    • vector< typename> name;
    • vector > name;
    • vector< typename> arrayName[arraySize];
  • 相关操作
    • 通过迭代器获取第一个元素:vector< typename>::iterator it
    • 访问vector
      • 通过下标 vt[i]
      • 通过迭代器访问
        • 方法一:通过类似指针的操作
        • 方法二:通过迭代器操作
for(int i=0;i
for(vector::iterator it=vt.begin();it!=vt.end();it++){
	cout<<*it;
}
  • List item
    • 在末尾添加元素:vt.push_back(元素);
    • 在末尾删除元素:vt.pop_back();
    • 获取元素个数:vt.size()
    • 清空容器:vt.clear();
    • 插入元素:vt.insert(vt.begin()+指定位置,插入内容)
    • 删除元素
      • 删除单个元素 vt.erase(vt.begin()+3)->删除第四个元素
      • 删除区间元素 vt.erase(vt.begin()+1,vt.begin()+4)->删除vt[1],vt[2],vt[3]

Set---->自动有序且不重复

  • 定义:
    • set< typename> name;
    • set< typename> name arrayName[arraySize];
  • 操作
    • 访问元素
      • 迭代器创建 set< typename>::iterator it=st.begin()
      • 访问操作
for(set::itaretor it=st.begin();it!=st.end();it++){
	cout<<*it;
}
  • List item

    • 插入 vt.insert(元素):自动排序
    • 查找 set< typename>::iterator it=vt.find(value):查找value,返回迭代器
    • 删除
      • 删除单个元素 st.erase(st.begin()+1)->删除第二个元素 类似数组中的st[1]
      • 删除区间元素 st.erase(st.begin()+1,st.begin+4)->删除第二,三,四个元素,类似数组中的st[1],st[2],st[3]
    • 获取长度: st.size()
    • 清空容器:st.clear()

String---->字符串

  • 定义:string str

  • 输入:cin>>str;

  • 输出

    • cout<
    • printf("%s",str.c_str());---->将String转换成字符数组输出
  • 操作

    • 访问
      • 通过下标:str[i]
      • 通过迭代器:for(string::iterator it=str.begin();it!=str.end();it++){cout<<*it}
    • 连接 str=str1+str2;
    • 通过字典序比较:str1>str2;str1=str2;str1<=str2;
    • 获取长度:str.length();str.size()
    • 插入:
      • 数组操作:str.insert(index,str2)---->在str[index]插入str2
      • 迭代器操作:str(str.begin()+3,str2.beigin,str2.end())----->在str[4]的位置插入str2
    • 删除
      • 删除单个元素:str.erase(str.begin()+2)---->删除第三个字符
      • 删除范围内元素:str.erase(str.beigin()+2,str.begin()+4)----->删除第3,4个元素
      • 删除范围内元素:str.erase(起始位置(3),个数(2))—>删除第四个(3号位),第五个元素
    • 清空 str.clear();
    • 获取子串 str.substr(0,5)—>获取第1->第4个字符组成的字符串
    • string::npos 常熟,-1或极值:用以获取find失败后获取的值
    • 查找
      • str.find(str1):在str中获取str1第一次出现的首位置,查找失败返回string::npos
      • str.find(str1,pos):在str中从pos开始查找str1
    • 替换
      • str.replace(pos,len,str2):从pos位([pos+1,pos+1+len))全部替换为str2;
      • str.replace(it1,it2,str2):把[it1,it2)替换为str2

    MAP—>键值对,以键从小到大

    • 定义:map mp;不能用字符数组,只能用字符串
    • 访问:
      • mp[‘键值’]
      • map< typename,typename2>::iterator it=mp.begin();
        • it->fist;---->获取该迭代元素的键
        • it->seconed;----->获取该迭代元素的值
    • 操作:
      • 查找:map< typename,typename2>::iterator it =mp.find(‘key’)
      • 删除
        • 删除单个元素:mp.ersase(it) / mp.erase(key)
        • 删除区间元素:mp.erase(it,mp.end());
      • 获取键值对个数:mp.size()
      • 清空元素;mp.clear()

queue—>先进先出

  • 创建队列:queue< typenname> name;
  • qu.push(元素):向队列添加元素
  • qu.pop():将首元素出队
  • 访问 只能通过qu.front()获取首元素,通过qu.back()获取末尾元素
  • qu.empty:判断队列是否为空
  • qu.size():获取队列中元素个数

你可能感兴趣的:(learning,diary,算法,C++)