使用auto可以进行自动类型推断,或者作为函数的返回值。 需要注意的是,用auto声明的变量必须初始化; 函数和模板的参数不能声明为auto; auto会退化成指向数组的指针,除非被声明为数组的引用。
:://../qlee/archive/2011/05/16/2048026.html vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因
1、只能用初始化列表初始化的成员 只能放到构造函数初始化列表中赋值的类成员包括:没有默认构造函数的类类型成员、常量成员、引用成员 2、C++在#include命令中,用〈 〉和“”有什么区别? <>表示在包含目录文件中查找,而不在源文件目录去查找;“”表示先在源文件目录去查找,若未找到 则去保护目录
不可变类//让类成为不可变类的三种方法: 拷贝构造函数:一种特殊的构造函数,它必须的一个参数是本类型的引用变量。 (1)有三种情况需要调用拷贝构造函数: 1、对象以值传递的方式传入函数参数 2、对象以值传递的方式从函数返回 3、新建对象需要另外一个对象初始化 (2)这其中还涉及到浅拷贝
://.nowcoder./ta/review-c/review?page=17
在牛客网上刷题,遇到的一些需要注意的题 1.这题需要注意的是strcpy复制的时候什么时候停止 2.这题是关于strlen的,它不统计‘\0',但复制的时候仍会复制。 3.这题是写strcpy函数的,需要注意的是对输入加const限定,判断输入是否为NULL以及最后返回头结点。 4、这题是关于形参的
今天刷题时遇到了这个问题,记录一下。 strcpy比较简单,就是拷贝字符串,遇到'\0'时结束拷贝。 memcpy用来做内存拷贝,可以拷贝任何数据类型的对象并指定拷贝数据的长度:char a[100],b[50]; memcpy(b, a, sizeof(b)); 总结一下: strcpy和memc
今天刷题时看到一题,是求类的大小的,其中涉及了内存的一些知识,记录一下。 正确答案是12和9 首先是内存对齐原则,可以参考这篇博文:://.cppblog./snailcong/archive/2009/03/16/76705.html 关于求类的大小,这和类中的成员有很大关系,
STL中的函数 bind1st、 bind2nd用于将一个二元算子转换成一元算子,需要两个 参数,要转换的bf和一个值v。 参考:://blog..net/simahao/article/details/405455
跟着这位博主来学习C++的卷积网络实例,因为作者一直在更新代码,所以新的代码和这位博主的分析有所不同;这位博主写的东西太泛了,没有讲到实质, 可以参考下他分析的类与类之间的关系图。。 前四节:://blog..net/u013088062/article/details/508390
很早之前就听过这本书,找工作之前读一读。看了几页,个人感觉实在是生涩难懂,非常不符合中国人的思维方式。之前也有博主做过笔记,我来补充一些自己的理解。 我看有人记了笔记,还不错:://.360doc./content/12/0426/20/7899729_206769585.sht
条款05:了解C++默默编写并调用哪些函数 如果自定义一个空类的话,会自动生成默认构造函数、拷贝构造函数、拷贝赋值函数、析构函数(再次感觉的实在是太啰嗦了!)。 当成员变量里有const对象或引用类
1、sizeof是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。2、strlen()是函数,要在运行时才能计算,参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。char arr[10] = "What?"; int len_one = strlen(arr); int len_two = sizeof(arr); cout <
容器包括顺序容器和关联容器。其中,顺序容器包括vector,list,deque。关联容器包括map,set。
条款18:让接口容易被正确使用,不易被误用 1,好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 2,“促进正使用”的办法包括接口的一致性,以及与内置类型的行为兼容。 3,“
资源:动态分配的内存、文件描述器、互斥锁、图形界面中的字型与笔刷、数据库连接以及网络sockets等, 无论哪一种资源,重要的是,当你不再使用它时,必须将它还给系统。 条款13:以对象管理资源 当我们向系统
参考:://../ronny/p/3754755.html 条款26:尽可能延后变量定义式的出现时间 有些对象,你可能过早的定义它,而在代码执行的过程中发生了导常,造成了开始定义的对象并没有被使用,而付出了构造成本来析构成本。 所以我们应该在定义对象时,尽可能的延后
1、多态 C++多态分两种--静态和动态,其中静态联编支持的多态称为编译时多态,包括重载和模板;动态联编支持的多态称为运行时多态,包括 继承和虚函数实现。 多态主要是由虚函数实现的,虚函数允许子类重新定义基类的虚函数(override);重载(overload)则是一个类中有多个同名函数,这些函数的
参考:://../ronny/p/37594.html 条款32:确定你的public继承塑模出is-a关系 “public继承”意味着is-a。适用于base classes身上的每一件事情一定也适合于derived class身上,因为每个derived c
多看看就背住了: 32位编译器:32位系统下指针占用4字节 char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理位编译器) short int : 2个字节 int: 4个字节 unsigned int : 4个字节 fl
只在堆上分配:将析构函数设为私有; 只在栈上分配:将operator new设为私有.
今天搜狗笔试的一道选择题,原题给忘了,但记得所考的知识点。知识点很基础,但很容易忽视。 具体内容可参考C++ Primer。 auto :变量取auto后,其所对应的类型 auto一般会忽视顶层const,保留底层const。但如果将引用类型设为const,则会保留相应的顶层const。下面是C++
:://blog..net/helonsy/article/details/7030 explicit:放在构造函数前面可以阻止构造函数的隐式类型转换。这样可以避免不必要的错误。 violate:告诉编译器不要去假定这个变量的值,因为它随时可能会改变。这是为了阻止某些编译
一看!
修饰成员变量,在const成员函数中可修改它,在C++中还从未用过这个关键字。
需要注意的是虚继承、多重继承时类的大小。
先说宏和函数的区别: 1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型. 2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的. 3. 宏在编译之前进行,即先
今天笔试的一道题,好久没用union了,竟然忘光光了。 关于其大小的计算,分两步:先算对齐大小(成员中字节最大的那个),再算分配空间: 不仅是对齐大小的整数倍,还要满足实际大小不能小于最大成员大小。 参考:://blog..net/talentluke/article/details
分为顺序容器和关联容器。顺序容器包括1、vector 内部数据结构:数组,可随机访问元素,在末尾增加或删除元素与元素数目无关,在其他部分增加或删除元素随着元素数目呈线性变化。可通过reserve提前分配足够的内存。2、deque 双端队列,按页/块来分配存储,每页/块包含固定的数目的元素。支持随机访问,在首、尾插入元素效率与元素数目无关,在中间插入或删除与元素数目呈线性关系。3、l
参考:://blog.sina../s/blog_79b01f6601018xdg.html (1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 co
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号