设为首页 加入收藏

TOP

C++ prime/笔试总结四
2017-05-27 17:35:23 】 浏览:8817
Tags:prime/ 笔试 总结

C++ prime/笔试总结四。

33.顺序容器适配器:stack, queue, priority_queue;
其中 srack,queue基于deque实现,priority_queue基于vector实现
(可以试着看侯捷的<<STL源码剖析>>)

34.迭代器范围是左闭右开区间 [begin,end)
35.(1)swap操作只是交换两个容器的数据结构,除array外,swap不对容器的任何元素拷贝,删除和插入,且保证在常数时间内完成;所以除string外,指向容器的迭代器,引用和指针在swap操作后 不会 失效.
(2)insert(p,t)操作是在迭代器p之前插入一个值为t的元素,然后返回指向当前元素的迭代器.(当前就是指插入的这个元素);
     erase()操作返回删除的最后一个元素之后的位置的迭代器;
(3)如果容器中没有元素,则访问操作的结果是未定义的,如c.front(), c.back(), c[i], c.at(i)等;
   所以在进行访问操作之前(当然删除操作也是),必须确保要操作的对象是存在的;
   而c.end(),c.begin()是安全的.
//以上看起来是通用函数,实际上每个容器都有自己不同的内部实现

36.经常看到书中所说,”容器的迭代器,引用和指针失效”是指:可能使原本可以访问到容器内元素的迭代器变得无法再访问.
 比如,插入和删除操作可能会更改元素在内存中的位置,所以原来的迭代器指向的位置可能因为插入或者删除导致不再存储原来的值.
例://vector vec; 
vector::iterator iter = vec.end();
a.push_back(10); //此时iter就失效了,因为vec.end()改变了;如果要用vec.end(),需要重新定义指向它的迭代器

ps:<<STL源码剖析>>P80: 迭代器是一种smart point(智能指针)

37.区分容器的
   (1)大小size : 已保存(拥有)的元素的数目;
(2)容量capacity : 在不分配新的内存空间的前提下最多可以保存的元素;
   capacity至少和size一样大,具体分配多少额外空间有STL具体实现而定;而且当所需size<=capacity时,容器不会重新分配内存空间;”只有迫不得已时才分配新的空间”.

38:通常”向前移动”指向右 -> ;”向后移动”指向左 <- .

39.一个老是遇到的笔试题: 实现动态编译,也就是多态,要满足:
(1)使用基类的引用或指针调用;
(2)虚成员函数
而且由于知道运行时才能知道调用了哪个版本的虚函数,所以所有的虚函数都必须有定义.(C++中)

 如下是无法实现多态的:

clss B0  //基类
{
  public:
  virtual void display()
  {
    cout<<"B0::display!"<
  
   display(); //输出B1::display!
}

*/
  

40.(1)树的节点的度(节点所拥有的子树的个数) 和图的节点的度(出度,入度)概念不一样
   (2)树的根节点的层数为1
(3)完全二叉树:叶子节点只能出现在最下层和次下层;最下层的叶子节点集中在树的左部

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ scanf()输入string类型变量 下一篇C++ prime/笔试总结五

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目