c++基础
文章平均质量分 57
coolwriter
这个作者很懒,什么都没留下…
展开
-
vassistx插件
有了VAX可以关掉C++导航栏,因为VSS有,而且功能更强大,快捷键ALT+M,显示当前打开文档的所有符号,而且可以输入进行过滤查找文件,shift+alt+o,(直接定位,更是对项目了心应手的表现)查找符号 shift+alt+s,(很爽很拉风)查找选定的内容,shift+alt+f,比VS2010自带的爽,不信你选定一个函数试试,而且它还有一个clone result功能,(不...转载 2019-05-21 09:11:48 · 1124 阅读 · 0 评论 -
rand和srand随机函数的用法
函数说明 : rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。原创 2017-11-27 17:30:00 · 580 阅读 · 0 评论 -
STL案例:比赛打分淘汰
案例:学校演讲比赛原创 2017-11-27 16:46:30 · 414 阅读 · 0 评论 -
STL之算术与集合
STL之算术与集合转载 2017-11-27 12:07:03 · 186 阅读 · 0 评论 -
STL之拷贝和替换算法
STL之拷贝和替换算法1.copy()vectorint> vecIntA;vecIntA.push_back(1);vecIntA.push_back(3);vecIntA.push_back(5);vecIntA.push_back(7);vecIntA.push_back(9);vectorint> vecIntB;vecIntB.resize(5);转载 2017-11-27 12:03:08 · 302 阅读 · 0 评论 -
STL之排序算法
STL之排序算法1.merge()以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列。 例如: vecIntA,vecIntB,vecIntC是用vector<int>声明的容器,vecIntA已包含1,3,5,7,9元素,vecIntB已包含2,4,6,8元vecIntC.resize(9); //扩大容量merge(vecIntA.begi...转载 2017-11-27 12:01:33 · 338 阅读 · 0 评论 -
STL之查找算法
STL之查找算法1.adjacent_find()在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。vectorint> vecInt;vecInt.push_back(1);vecInt.push_back(2);vecInt.push_back(2);vecInt.push转载 2017-11-27 11:58:29 · 225 阅读 · 0 评论 -
STL之函数适配器
STL之函数适配器1.理论知识2.常用函数适配器标准库提供一组函数适配器,用来特殊化或者扩展一元和二元函数对象。常用适配器是:1绑定器(binder):binder通过把二元函数对象的一个实参绑定到一个特殊的值上,将其转换成一元函数对象。C++标准库提供两种预定义的binder适配器:bind1st和bind2nd转载 2017-11-27 11:46:34 · 279 阅读 · 0 评论 -
一元谓词案例与二元谓词案例
一元谓词案例与二元谓词案例原创 2017-11-26 18:24:22 · 6370 阅读 · 0 评论 -
STL之函数对象和谓词
STL之函数对象和谓词1.函数对象重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过“对象名+(参数列表)”的方式使用一个类对象,如果没有上下文,完全可以把它看作一个函数对待。 这是通过重载类的operator()来实现的。 “在标准库中,函数对象被广泛地使用以获得弹转载 2017-11-26 17:14:51 · 1055 阅读 · 0 评论 -
STL之算法基础
STL之算法基础1.概述算法部分主要由头文件,和组成。是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、反转、排序、合并等等。体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。中则定义了一些模板类,用以声明函数对象。STL提供了大量实现算法的模版函数,只要我们熟悉了转载 2017-11-26 17:11:35 · 445 阅读 · 0 评论 -
STL之Map和multimap容器
STL之Map和multimap容器1.简介map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。map可原创 2017-11-26 12:01:46 · 231 阅读 · 0 评论 -
STL之优先级队列priority_queue
STL之优先级队列priority_queue1.简介最大值优先级队列、最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用2.示例代码int main(void){ priority_queue<int> p1 ; //默认情况下是最大值优先级队列 (从大到小) priority_queue<int , vector<int>, l转载 2017-11-26 11:27:26 · 309 阅读 · 0 评论 -
STL之Set和multiset容器
STL之Set和multiset容器1.set/multiset的简介set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。set不可以直接存取元素。(不可以使用at.(原创 2017-11-26 11:28:48 · 296 阅读 · 0 评论 -
STL之List容器
STL之List容器1.简介list是一个双向链表容器,可高效地进行插入删除元素。 list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err) #include <list>2.对象的默认构造list采用采用模板类实现,对象的默认构造形式:list lstT; 如:list<int> lstInt; //定义一个存放int的l转载 2017-11-26 11:08:50 · 186 阅读 · 0 评论 -
STL之容器小结
STL之容器小结转载 2017-11-26 17:09:01 · 314 阅读 · 0 评论 -
cout输出详解
在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式 输出一个 整数,对输出的小数只保留两位小数等。有两种方法可以达到此目的。 1)使用控制符的方法; 2)使用流对象的有关成员函数。分别叙述如下。 使用控制符的方法#include #include #include usin转载 2018-01-10 22:12:29 · 7657 阅读 · 0 评论 -
C++11 基于范围的for循环
一. 基于范围的for循环简介在C++03/98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C++11基于范围的for循环以统一,简洁的方式来遍历容器和数组,用起来更方便了。数组循环:[cpp] view plain copyusing namespace std; const int转载 2018-01-13 16:06:46 · 406 阅读 · 0 评论 -
stringstream·
stringstream stringstream是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的iostream、fstream有类似的操作方式。要使用stringstream, 必须先加入这一行:#include <sstream>stringstream主要是用在將一个字符串分割,可以先用.clear( )以及.str( )將指定字串设定成...原创 2019-02-22 17:31:15 · 235 阅读 · 0 评论 -
makefile模板
CC = gccCXX = g++LINK = g++CFLAGS = -g -Wall -O2TARGET = mk0SRCS = $(wildcard *.cpp)SRCS += $(wildcard *.c)CXX_OBJS = $(patsubst %.cpp, %.o, $(wildcard *.cpp))C_OBJS =...原创 2018-08-05 21:34:10 · 411 阅读 · 0 评论 -
回调函数
C语言中的回调函数(Callback Function)1 定义和使用场合回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数。函数是你实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数运行期间来回调你实现的函数。...转载 2018-08-04 10:33:15 · 237 阅读 · 0 评论 -
vector 二维数组
最近在刷题的时候遇到过好几次二维数组的问题,因为我自己想在C++方向发展,所以尽可能地用C++提供的STL来完成编程,但是在使用二维数组的时候遇到了麻烦,就是如果用int[][]这种直接表示方式很简单,如果用vector的话就有点麻烦,为此我也查了一下资料。 定义一个二维整形数组并初始化:vector<vector<int> > array(m); //这...原创 2018-06-29 14:21:01 · 701 阅读 · 0 评论 -
so动态库和a静态库的编译
一般linux环境下的链接库分为a库和so库,分别表示静态链接库和动态链接库,其作用是把C程序编译好做成一种可执行链接文件,c主程序文件调用这些程序的函数接口是可以使用a库或so库,在主程序中只需要include含有库中提供的函数接口声明的头文件即可。一、生成a库首先,你需要写几个你要调用的函数的源文件,如test1.c、test2.c等。其代码如下:再将头文件写好(其实这里的头文件并不需要,若是...转载 2018-06-09 11:32:39 · 8645 阅读 · 0 评论 -
多文件编程
模块化编程,就是多文件编程。把不同功能的函数封装到不同的文件中。一个.c文件和一个.h文件被称为一个模块。开发C程序时,稍微大型的项目就需要使用多文件开发(模块化编程)。当代码量较大功能较复杂时,单一文件程序会使得文件非常巨大,代码量非常大,成千上万行的代码在一个文件中不便于修改和维护,因此需要将不同的功能模块放在不同的文件中。在团队合作开发时,也需要多文件开发。各个功能模块分成多个文件同时编辑,...转载 2018-05-24 11:19:24 · 11291 阅读 · 1 评论 -
指针引用经典笔试题
指针引用经典笔试题(1) 1 #include<malloc.h> 2 #include<string.h> 3 4 void GetMemory(char *p, int num) 5 { 6 p = (char *)malloc(sizeof(char) * num); 7 } 8 9 void main()10 {11 cha...转载 2018-05-23 11:31:34 · 1088 阅读 · 0 评论 -
strcpy函数 和 strstr函数
大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是: char *my_strcpy(char *dst,const char *src) { assert(dst != NULL); assert(src != NULL); char *ret = dst; while((* dst++ = * src+...转载 2018-06-03 20:55:14 · 504 阅读 · 0 评论 -
深入探索C++对象模型(十)执行期语义学(new和delete)
关于new和delete运算符。a. 使用new运算符构造对象时, 例如:[cpp] view plain copyPoint3d* origin = new Point3d; 会被转化为两个操作:分配空间和调用类的构造函数:[cpp] view plain copyPoint3d* origin; if(origin = __new(sizeof(Point3d))) { ori...原创 2018-06-03 17:49:47 · 243 阅读 · 0 评论 -
左值和右值
这个问题牵涉到得首先是左值(L-value)和右值(R-value)的概念; 1. 我查资料的时候发现很多地方都引用一句话:"通俗的讲,左值就是能够出现在赋值符号左面的东西,而右值就是那些可以出现在赋值符号右面的东西了。"我觉得这句话在刚开始理解的时候是什么用都没有的一句废话.因为我们都不知道哪些东西应该放在赋值符号的左边,哪些东西又应该放在赋值符号的右边这样说是没有意义的.2.接...原创 2018-05-27 17:21:38 · 14657 阅读 · 2 评论 -
快速排序,堆排序和基数排序
之前我的博客有排序算法总结 十种排序算法 - CSDN博客 https://blog.csdn.net/coolwriter/article/details/787327281、快速排序 快速排序的中心是填坑法,取一个数(这里选取第一个数)作为基准数temp,从队尾开始寻找第一个比基准数小的数a[j],交换a[j]和temp,然后队首开始查找第一个比temp大的数a[i],交换之,遍...转载 2018-05-01 16:44:16 · 1836 阅读 · 0 评论 -
C++中子类和父类之间的相互转化
// EX_EXAM.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; class A { public: virtual void foo() { cout<<"A foo"<<endl; } ...转载 2018-03-16 10:20:58 · 15887 阅读 · 0 评论 -
C++11 std::function和bind绑定器
一.std::function C++中的可调用对象虽然具有比较统一操作形式(除了类成员指针之外,都是后面加括号进行调用),但定义方法五花八门。为了统一泛化函数对象,函数指针,引用函数,成员函数的指针的各种操作,让我们可以按更统一的方式写出更加泛化的代码,C++11推出了std::function。 std::function是可调用对象的包装器。它是一个类模板,可以容转载 2018-01-13 16:28:39 · 248 阅读 · 0 评论 -
STL标准库Deque容器
STL之Deque容器1.简介deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。deque在接口上和vector非常相似,在许多操作的地方可以直接替换。deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。deque头部和尾部添加或移除元素都转载 2017-11-25 21:58:11 · 358 阅读 · 0 评论 -
string的查找和替换
查找和替换string原创 2017-11-25 22:55:05 · 2385 阅读 · 0 评论 -
STL标准库Queue
STL之Queue1.简介queue是队列容器,是一种“先进先出”的容器。queue是简单地装饰deque容器而成为另外的一种容器。 #include 2.对象的默认构造queue采用模板类实现,queue对象的默认构造形式:queue queT; 如:queueint> queInt; //一个存放int的queue容器。转载 2017-11-25 22:00:59 · 328 阅读 · 0 评论 -
二级指针内存模型
二级指针做输出模型原创 2017-11-23 11:37:48 · 224 阅读 · 0 评论 -
C++ string字符串
string是非常强大的类型,很好的封装了字符串的操作转载 2017-11-23 10:31:08 · 225 阅读 · 0 评论 -
C字符串查找
字符串原创 2017-11-22 19:37:36 · 340 阅读 · 0 评论 -
字符串反转模型
类似两头堵模型的字符串反转原创 2017-11-22 18:31:43 · 333 阅读 · 0 评论 -
字符串中挖字符串,两头堵模型
求出字符串(首尾有空格)有效字符的长度原创 2017-11-22 18:21:38 · 317 阅读 · 0 评论 -
字符串copy函数、字符串查找出现次数函数
字符串copy函数//避免操作空指针以及引入辅助指针变量增强程序的健壮性原创 2017-11-22 18:14:38 · 312 阅读 · 0 评论