随笔分类 - C/C++语言基础
基本的语法规则问题
摘要:本条款主要讲解了类成员初始化的问题; 本章的宗旨旨在初始化类成员,保证类成员能够成功初始化,防止未初始化造成使用之外的错误; 初始化列表: 作者希望人们使用初始化列表而构造函数体内赋值的方式进行初始化的定义; class test { private: int a; string s; double
阅读全文
摘要:本章节主要讲解了const的一些应用问题,并且通过例子系统的讲解了const的使用场景和方法; 针对于指针和函数来说: 首先注意的是变量、指针和函数返回时使用const修饰时的场景; char greeting[] = "hello"; const char* a=greeting; char* c
阅读全文
摘要:该章节主要描述了#define的相关缺陷问题; #define的主要作用主要有以下几个方面: 1.常量宏:提前进行预处理变量的定义; 2.函数宏:类似于inline函数来进行代码或者简单函数展开; 但是尽管#define可以发挥作用,仍然会有相关的缺陷; 针对于问题1的缺陷,主要是在编译报错方面存在
阅读全文
摘要:模板参数的问题: 对于模板参数的使用可以分为三大类: 1.类型参数; 2.非类型参数; 3.模板的模板参数; 针对于类型参数: 其实就是我们所最常使用的类类型,通常在模板参数列表中需要typenmae进行声明,往往是一个类或者某种类型; 可以说是最常见的一种; 针对于非类型参数: 之前提到过,例如典
阅读全文
摘要:1.关于多文件链接template的编译问题; 2.关于.h头文件和.cpp主文件的template问题;
阅读全文
摘要:上一次用C++写多态还是在两年前,好多基本概念早已遗忘,根据相关博客需要把《深度探索C++对象模型》这本书在后几个月好好看一看; 虚函数针对于多态而提出的,目的是解决多态下的函数调用问题; 例如对于有继承顺序A->B; 如果有A a=new B(); 其实a指向的是B类。对于如果B进行了虚函数的定义
阅读全文
摘要:Union其实可以看作一种特殊的结构体; 对于普通的类和结构体,会通过定义和实例化开辟空间,每个成员和字段相互独立不关联; 但是Union内所有的数据共享同一段内存,从而达到节省空间的目的,使用的是计算机组成原理中的覆盖技术,所以Union的最大空间范围其实相当于最大变量的范围; 值得注意的是,Un
阅读全文
摘要:关于类模板和模板类得区分问题: 个人认为主要是针对于翻译的相关问题:即 class template 和 template class的相关问题; class template“类模板”主要是针对于参数化的类模板描述,即最初的某个类类型的模板定义; template class“模板类”主要是针对于
阅读全文
摘要:关键字typename的相关问题: 首先需要注意的是当T存在内部类型的问题; 例如书上给出的示例: template <typename T> void printcoll(const T& coll) { typename T::const_iterator pos; typename T::co
阅读全文
摘要:本章主要补全了C++非类型模板参数的问题; 当时不太理解这个有什么用,但是通过一些实例可以大致感受出来; 例如,对于可变数据结构,往往不清楚使用该数据结构的大小应该指定为多少,有可能造成浪费和栈溢出,所以可以该非类型模板参数的方法来指定大小; template <typename T, int ma
阅读全文
摘要:本章主要针对于函数模板做一个初步的总结,补全了一些C++ Prime上缺失的问题; 函数实参类型转换问题: 在指定模板类型之后,实例化如果类型出现不符合,会进行报错,所以特定场合需要进行类型转换: #include<iostream> #include<stdio.h> #include<strin
阅读全文
摘要:泛型编程最早提出的目的是为了减轻代码量,避免无意义的重载而提出的; 在检查的时候并不针对于泛型进行检查,只有在编译的时候才会针对于template的类型来进行实例化; 泛型函数模板: 补充:关于内联函数的问题 内联函数类似于c中的宏展开,本质上就是为了减少调用栈的开销而提出的,采用inline方式来
阅读全文
摘要:有些题目在定义函数的时候采用的是char指针或者字符串传参,自己习惯STL的string,不太熟悉。所以这里对C语言中的Char数组做个总结; 关于Char字符串的初步概述: 相当于Int数组,只不过是char类型的。 但是需要注意的是Char数组在定义的时候一定要注意,结尾的'\0'是占一个位置的
阅读全文
摘要:优先队列是建立在队列的基础上来进行求解的; 仍然具有相同的函数操作,但是唯一不同的是增加了一个新的特性:根据自定义可以对队列内输出顺序进行控制; 情况一:当如果使用普通数值来说: 简单的定义方式: priority_queue<int>q; 这种是最简单的不定义控制方式的操作,默认将队列内的元素从大
阅读全文
摘要:后续在做题时的时候遇到了一个从文件里去读取一串逗号分隔的double数字,并排序的问题; 还是挺操蛋的一道题,用直接读入在分割的方法贼麻烦,所以还是要寻求简单的的库函数和Cpp11特性来进行解决; 查阅相关blog,简单聊一下相关的问题; 其实最主要的有两个问题: 1.如何读入?能不能一次分割得到s
阅读全文
摘要:老生常谈的问题,N年前仔细做过总结,现在全忘光了; 重载函数: 一定要参数列表不同,名字相同,C++编译器可以根据参数的类型自动调用; void exc(char& a, char& b) { char temp = a; b = a; b = temp; } void exc(int& a, in
阅读全文
摘要:主要针对于机试中的IO读写问题,c语言实现和使用太过于繁琐,所以以后遇到类似题目还是用C++的; 主要包含头文件 #include<iostream> #include<fstream> #include<sstream> 一般来说,用fstream就足够够用了,他包含了istream和ostrea
阅读全文
摘要:set最大的特点:去重,自己具有排序功能; set<xxx>vec; 基本使用函数: insert(); find() //find返回指针类型,和尾指针end()比较; earse(),删除单个元素或者区间元素。单个元素给指针或者数值;区域元素给范围; size(); clear();直接清除所有
阅读全文
摘要:1015 Reversible Primes (20point(s)) PAT中涉及到了多点测试问题,这个需要注意一下,一直没怎么注意过; 主要的表示为结尾不同寻常,是以不寻常输入作为结尾标志的。 73 10 23 2 23 10 -2 例如对上述输入,就不能按照格式按行读入,而是因该使用while
阅读全文

浙公网安备 33010602011771号