随笔分类 - C++
摘要:C++11之后允许对非静态成员变量进行初始化(in-class initialization),不过对于非fundamental(非基本数据)类型需要采用的是initializer_list来实现的 所以如下代码是错误的: class A{ public: int x=1; string s="qw
        阅读全文
                
摘要:首先给段代码: 1 class A{ 2 public: 3 int x=0; 4 A():x(1){cout<<"A(): x="<<x<<endl;} 5 A(int a):x(a){cout<<"A(int a): x="<<x<<endl;} 6 A(int a,int b):x(a){ 7
        阅读全文
                
摘要:1. 直接初始化直接调用与实参匹配的构造函数,形式如“T t(u)”。2. 拷贝初始化:复制初始化首先使用指定构造函数创建一个临时对象,然后用复制构造函数将那个临时对象复制到正在创建的对象”,形式如“T t=u”。 直接初始化不一定要调用复制构造函数复制初始化(拷贝初始化)一定要调用复制构造函数 注
        阅读全文
                
摘要:有序的都不带unordered,即如下: set multiset map multimap 其中带multi的表示关键字可以重复 无序的带unordered,如下: unordered_map unordered_set unordered_multimap unordered_multiset 
        阅读全文
                
摘要:1 accumulate(b,e,T)	累和(基础和为T) 注意T的类型必须和序列中元素类型相同,如double序列后面的T就必须是0.0,如果是0就会把序列中的数当成int进行求和 2 count(b,e,T) 计数,查找[b,e)中T出现的次数 3 equal(b1,e1,b2)	确定是否相同,
        阅读全文
                
摘要:顺序容器类型:vector、deque、list、forward_list、string、array。 queue(单向队列)底层也是用deque(双端队列)实现的 a.swap(b); swap(a,b); 可以交换两个容器的数据结构 初始化: 声明时定义 .assign(n,t),以n个t初始化
        阅读全文
                
摘要:如图,直接取二者的地址是不一样的。 但实际上二者应该是共用常量数据区内的一片地址。但&s1、&s2取的是两个字符串对象的地址,对象的地址是在栈区的,所以肯定不一样。只是实际上整个程序内存中应该只有一个"hello",这是我的理解,有问题的话麻烦评论指出我的错误,谢谢。
        阅读全文
                
摘要:看程序员面试笔记看到一段代码,记录一下: int main(){ char* const str="apple"; *str="orange"; cout<<str<<endl; getchar(); } 这段代码有两个问题: 1.str是char* 类型,要给str赋值要写str=“orange”
        阅读全文
                
摘要:最近看剑指offer,记录一下 #include <iostream> #include <string> #include <cctype> #include<vector> #include<list> #include<cstring> #include<typeinfo> #include<
        阅读全文
                
摘要:今天看c++primer第六章,有这部分的内容,脑子有点糊涂了,看了几篇博客,自己敲了下,记录一下备忘。 二级指针: int **p; 二维数组: int p[10][10]; char q[10][10]; 指针数组: int *p[10]; 数组指针: int (*p)[10]; 咋区分后面这俩
        阅读全文
                
摘要:看C++Primer第三章看到的,记录一下。 下面这段代码非法,因为row指向的是每一行的一个大小为10的一维数组,默认转为指针,即row其实是一个int*类型的指针,显然内层循环就出错了 int arr[10][10]; for(auto row:arr) { for(auto col:row) 
        阅读全文
                
摘要:1 extern 符表示该变量不是当前作用域定义的,用于声明。 如extern i;表示i不是当前作用域里的,是其他某个include的cpp文件里的变量。 2 int *p=0;相当于初始化p为空指针。 3 指针是对象,引用不是对象。所以可以取指针的指针或者指针的引用,但不可以取引用的指针。 指针
        阅读全文
                

浙公网安备 33010602011771号