1625-5 王子昂 总结《2016年11月11日》 【连续第42天总结】
标题:C++的容器算法
A. C++视频一个 200%
数据库视频一个 200%
B. 把昨天遗留的容器和迭代器问题进行了实验:
前期出错很多次,最后得知在插入数据后迭代器也会失效。
而在使用erase方法删除迭代器当前所指元素后,并没有出现如上失效时的乱码,而是指向了删除元素的后一个元素,与视频所讲不同。
标准库中提供了一些算法,来完成通用的工作。 如:排序、查找、替换等。
许多算法以迭代器为参数,如排序和查找要用迭代器分别表示起始和终止位置;
有的算法返回一个迭代器,如查找find()。
合并merge()之前必须把两段元素排序,否则出错。
算法同样可以作用于指针。
应用算法可以高效地解决问题,使用方法要多查询文档。记得加<algorithm>或<numeric>头文件。
序列型容器概览:
vector(向量)定义在头文件<vector>中,实际上就是动态数组。随机存取元素可在常数时间内完成,尾端增删元素拥有较佳性能。
deque(双端队列)定义在头文件<deque>中,也是动态数组。性能较次于vector,但拥有push_front()和pop_front()两个从头部增删元素的函数。
list(双向链表)定义在头文件<list>中,任意位置增删元素效率高,但不支持随机存取,因为元素不连续。每个元素有指针,占用额外空间。
选择容器要按照需要:若要求随机访问元素,则应用vector或deque;
若需要在容器中间插入或删除元素,则应用list容器;
若在容器首尾插入或删除元素,则应用deque容器。
mysql中修改表之前要先选择数据库,使用use命令。
在输入长命令时,若需要续行,则在每行首部不可有空格(即不可缩进),这点与oracle不同。
尝试了表的增删改查,select order by where等命令基本相同。又一点与oracle不同的地方是,group by分组后,子列中出现的会是该组该列中第一个项值。
C. 明日计划
C++视频一个
数据库视频一个
mataspolit靶机环境搭建完成