寒假ACM学习第一天零散小结

  1. 了解的时间(空间)复杂度的问题,以及运用c++的去编写自己的程序(只不过编写的特别慢特别慢而已)
  2. 关于STL函数的一些用法

1)       string(动态长度字符串)

string只用cin和cout输入以及输出。

构造函数:string s1;

S1=”1234”;s1(“1234);s1(5,’a’)(输出5个a);s1(“1234”,4)(取前4位);s5(“”,k,n)(从k位置取n位)

 

清空 :clear()

在后面加字符串s2.append(“”);或者s2+=

寻找某个字符 find()函数(找不到返回-1)

字符串比较(直接比较,返回布尔类型)

清除一段字符串的区间:earse

 

2)vector 是一种长度可以动态变化的数组

      vector<类型>
v1.push_back()   //在数组的最后添加一个数据
v1.pop_back()    //去掉数组的最后一个数据 
v1.front()     //返回第一个元素(栈顶元素)
v1.begin()           //得到数组头的指针,用迭代器接受
v1.end()             //得到数组的最后一个单元+1的指针,用迭代器接受
v1.clear()        // 移除容器中所有数据
v1.empty()         //判断容器是否为空
v1.erase(pos)        //删除pos位置的数据
v1.erase(beg,end)// 删除[beg,end)区间的数据
v1.size()         //回容器中实际数据的个数
v1.insert(pos,data) //在pos处插入数据
 

3)queue(FIFO)

queue<类型>  q;

q.empty()// 如果队列为空返回true,否则返回false 

q.size() // 返回队列中元素的个数 

q.pop()  //删除队列首元素但不返回其值 

q.front()  // 返回队首元素的值,但不删除该元素 

q.push(X) //在队尾压入新元素 ,X为要压入的元素

q.back() //返回队列尾元素的值,但不删除该元素 

4)stack

stack<类型>  s;
s.empty()//如果栈为空返回true,否则返回false  
s.size()//返回栈中元素的个数  
s.pop()//删除栈顶元素但不返回其值  
s.top()//返回栈顶的元素,但不删除该元素  
s.push(X)//在栈顶压入新元素 ,参数X为要压入的元素
 

 

 

5)map一个值对应的一个映射(方便用于统计字符串,可以map套娃)

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

 

 

做题总结:做题速度太慢了,明天先整理一遍知识点再睡个午觉之后再高效写

注意stl的初始化问题!!!!!!

posted @ 2021-01-20 21:09  Treasure-  阅读(50)  评论(0)    收藏  举报