c++培训周总结4

培训部分

数据结构的概念:
   逻辑结构
   物理结构
   运算结构
  几个常用的数据结构:
   堆栈(栈)
   队列
   链表
   二叉树(有序)

数据结构的分类:
    抽象层——逻辑结构(人脑中)
    结构层——物理结构(计算机)
    实现层——运算结构(应用角度)


 逻辑结构的分类:
    集合结构(集) - 结构中的元素除了 同属于一个集合之外没有 其他的关系。
    线性结构(表) - 结构中的元素 是一对一的前后关系。(重点)
    树型结构(树) - 结构中的元素 是一对多的父子关系。
    网状结构 - 结构中的元素 是多对多的交叉映射关系。


物理结构的分类:
    顺序结构 - 数据存放在一片连续的内存地址中(不间断)。
    链式结构 - 链式结构的元素存放在不连续的内存地址中,因此存储时按节点存储,而不只是存储数据。一个节点包括数据和下一个节点的地址。
    

优缺点:
     顺序结构:随机访问方便,插入删除效率低,空间使用率低。
     链式结构:插入删除方便,随机访问效率低,空间使用率高。


顺序结构 链式结构 互补。

数组是一个常指针,不能改变指向的指针

完全二叉树 就是 前面n-1 是满的,最后一层可以不满,但是要 从左向右 连续排列。


快速排序

void quick_sort(int *a,size_t begin,size_t end)
{
size_t m=(begin+end)/2;
int p=a[m];
size_t i=begin,j=end;
while(i<j)
{
for(;!(i>=m || p<a[i]);++i);
if(i<m)
{
a[m]=a[i];
m=i;
}
for(;!( j<=m || p>a[j]);--j);
if(j>m)
{
a[m]=a[j];
m=j;
}
}
a[m]=p;
if(i-begin>1)
{
quick_sort(a,begin,m-1);
}
if(end-j>1)
{
quick_sort(a,j+1,end);
}
}



自学部分

String 和Array都是一种容器


容器运用时机 


vector
内部结构最简单,允许随机存取


deque
经常在序列头部和尾部安插和移动元素


list
经常在容器中执行元素的安插,移动和移除


set,multiset
经常需要根据某个准则来搜寻元素


容器内的型别 
container::value_type
都支持




container::key_type
关联式容器支持,set,map


container::key_compare
关联式容器支持


container::value_compare
关联式容器支持


explicit container::container(const CompFunc& op)
以op为准则产生一个容器
关联式容器支持


explicit container::container(const container& c)
都支持 


explicit container::container(const container& c)
vector,deque,list支持


container::container (size_type num,const T& value)
vector,deque,list,string支持
string不是引用传值


container::container(InputIterator beg,InputIterator end)
都支持


container::container(InputIterator beg,InputIterator end,const CompFunc& op)
关联式容器支持


bool container::empty比 size()==0快


size_type container::capacity() const
返回重新分配前最多元素个数
vector,strin支持


void  container::reserve(size_type num)
vector,string支持 


count,find,lower_bound,upper_bound,equal_range,key_comp,value_compare
void container::assign(size_type num,const T& value)
关联式容器支持


void container::assign(InputIterator begin,InputIterator end)
vector,deque,list ,string支持


at
vector,deque,string支持


operator[]
vector,deque,string支持


T& map::operator[](const key_type& key)
map支持


front(),back()
vector,deque,list支持


如果容器为空 rend()==rbegin()


iterator container::insert(const T& value)
pair<iterator,bool> container::insert(const T& value)
关联式容器+string支持


序列式操作一般返回void版本
关联式操作一般返回 iterator版本


void list::remove 只有list支持


 void container::resize(size_type num,T value)
vector,deque,list,string支持


配置器 
...


迭代器 
 *iter=42 等同于 iter=42


advance(InputIterator &pos,Dist n)
pos前进n



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值