寒假ACM学习第一天零散小结
- 了解的时间(空间)复杂度的问题,以及运用c++的去编写自己的程序(只不过编写的特别慢特别慢而已)
- 关于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的初始化问题!!!!!!

浙公网安备 33010602011771号