前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >牛客网-C/C++专项训练知识点总结

牛客网-C/C++专项训练知识点总结

作者头像
村雨遥
发布2019-09-09 17:23:10
1.1K0
发布2019-09-09 17:23:10
举报
文章被收录于专栏:JavaParkJavaPark

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/github_39655029/article/details/88729023

  • C与C++结构体的区别:
    • C中结构体无函数,但C++的结构体可以有函数;
    • C++的结构体可以被类取代,因为类相对于结构体具有封装性等优势;
  • C++中结构体与类的区别:结构体中的成员访问权限不声明时默认是公开的,但是类确实私有的;
  • vector与list的区别:
    • vector拥有一段连续的内存空间,因此支持随机存取,如果需要高效的随即存取;
    • list拥有一段不连续的内存空间,如果需要大量的插入和删除,应该使用list;
    • vector::iterator支持“+”、“+=”、“<”等操作符;
    • list::iterator不支持[]运算符;
  • 构造函数的执行先执行父类,再执行子类,析构函数则相反;
  • 指针是个变量,地址是个常量,指针的值是地址,指针能进行加减操作,但地址必须通过赋值操作后才可以;
  • 程序在编译前由预处理器对预处理命令进行处理;
  • X&(X-1):统计X的二进制中1的个数;X|(X+1):统计X的二进制中0的个数;
  • unordered_map:所谓的哈希map,其底层数据结构为hashtabllepriority_queue:优先级队列,即二叉树,其底层数据结构是heap;
  • const修饰类的成员函数形式为:int Function() const,该函数不能修改任何的成员变量,不能调用非const成员函数(非const成员函数可以修改成员变量);
  • C++的虚函数必须是类的一个成员,而不允许是类的友元;
  • 纯虚函数是在基类中没有实现的函数,虚函数在基类中实现了,但在派生类中可能有不同版本的函数;纯虚函数是在基类中等于0的函数;抽象类是含有纯虚函数的类;抽象类指针可以指向不同的派生类;
  • 静态局部变量特点:
    • 变量在全局数据区分配内存;
    • 静态局部变量在程序执行到该对象的声明处是被首次初始化,以后的函数调用不用再进行初始化;
    • 静态局部变量一般在声明处初始化,若没有显式初始化,则会被程序自动初始化为0;
    • 是总驻留在全局数据区,知道程序运行结束。但其作用与为局部作用于,当定义它的函数或语句块结束时,其作用域随之结束;
  • 访问vector中的数据的两种方法:
    • vector::at():做边界检查,若是访问越界,将抛出异常;
    • vector::operator():为了与C语言进行兼容,不用做边界检查;
  • 指针指向字符串时,字符串是常量,存储在常量区,而指针存储在栈区,不能对其操作修改;
  • Nagle算法的规则;
    • 若包长度达到MSS,则允许发送;
    • 若包含有FIN,则允许发送;
    • 设置了TCP_NODELAY,则允许发送;
    • 未设置TCP_CORK选项时,若所有发出去的小数据包(包长度小于MSS)均被确认,则允许发送;
    • 上述条件均不满足,但发生了超时(一般为200ms),则立即发送;
  • C++中,多文件结果的程序中,通常把类的定义单独存放在头文件中;
  • 当基类构造函数需要外部传递参数才能够进行初始化时,派生类必须显式定义构造函数,为基类传递参数;基类如果不需要传递或可以不传递参数时,派生类可以不用显式定义构造函数;

未完待续。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 未完待续。。。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档