c++
zp307
这个作者很懒,什么都没留下…
展开
-
c++ 取模和求余运算
对整型数a,b来说,取模运算或者求余运算的方法都是:1.求整数商:c=a/b;2.计算模或者余数:r = a-c*b;求模运算和求余运算在第一步不同:取余运算在取c的值时,向0方向舍入;而取模运算在计算c的值时,向负无穷方向舍入。例如:计算-7 Mod 4那么:a = -7;b = 4;第一步:求整数商c,如进行求模运算c = -2(向负无穷方向舍入),求余c = -1(向0方向舍入)...转载 2019-06-03 16:42:41 · 5204 阅读 · 0 评论 -
typedef void(*Fun)(void);的理解
转发:转发首先介绍大家比较熟悉的typedefint i;//定义一个整型变量itypedef int myInt;myInt j;//定义一个整型变量j上面介绍得是我们常用的比较简单的typedef的用法,下面首先介绍一下函数指针。函数指针的形式:*形式1:返回类型(函数名)(参数表)#include <iostream> using namespace st...转载 2019-08-13 10:53:15 · 722 阅读 · 0 评论 -
c++ 二维vector初始化方法
1、C++ 构建二维动态数组int **p;p = new int*[10]; //注意,int*[10]表示一个有10个元素的指针数组for (int i = 0; i < 10; ++i){ p[i] = new int[5];}2、利用vector实现vector<vector<int> > array(m); //这个m一定不能少...原创 2019-03-19 15:05:32 · 2637 阅读 · 0 评论 -
C/C++基类的析构函数定义为虚函数的必要性
基类指针可以指向派生类的对象(多态性),如果删除该指针delete []p;就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动调用基类的析构函数,这样整个派生类的对象完全被释放。如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除基类指针时,只会调用基类的析构函数而不调用派生类析构函数,这样就会造成派生类对象析构不完全。所以,将析构函数声明为虚函数是十分必要的。为什么基类的析构函...转载 2019-08-13 15:16:47 · 456 阅读 · 0 评论 -
查找vector中的某个元素
C++的map有find成员函数, 但vector居然没有find成员函数, 那就用泛型find,头文件加上#include <algorithm>示例代码:#include <vector>#include <algorithm>#include <iostream>int main( ){ using namespace s...原创 2019-08-06 15:21:19 · 9279 阅读 · 0 评论 -
C语言函数参数入栈顺序
C语言中函数参数的入栈顺序,到底是从右到左,还是从左到右呢?先看一个网上的程序例子:#includevoid foo(int x, int y, int z){printf("x = %d at [%X]n", x, &x);printf("y = %d at [%X]n", y, &y);printf("z = %d at [%X]n", z, &z);}...原创 2019-07-21 10:40:10 · 441 阅读 · 0 评论 -
c++ 命名空间的理解
一、为什么使用命名空间一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数,这样在程序中就会出现名字冲突。不仅如此,有可能我们自己定义的名字会与C++库中的名字发生冲突。名字冲突就是在同一个作用域中有两个或多个同名的实体,为了解决命名冲突 ,C++中引入了命...转载 2019-07-17 10:35:55 · 334 阅读 · 0 评论 -
c++虚函数的理解
虚函数的作用:可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时, 基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数, 而不是基类中定义的成员函数(只要派生类改写了该成员函数)。 若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都 会调用基类中定义的那个函数。示例(不使用虚函数):#include <iostream>using namespace ...原创 2019-07-15 11:40:36 · 126 阅读 · 0 评论 -
STL中remove()和erase()的用法
remove()示例:initializer_list<int> list_t = { 1, 2, 1, 3, 4, 1, 5, 6, 7, 8 };vector<int> vec(list_t);vector<int>::iterator it;for (it = vec.begin(); it != vec.end(); ++it){ cout ...转载 2019-07-15 09:48:48 · 263 阅读 · 0 评论 -
rand()函数产生随机数
转载link#include <stdio.h>#include <stdlib.h>#include <time.h>/*rand() 函数是一种不需要参数,它会返回一个从0到RAND_MAX(rand()函数返回的最大值,不要急嘛,下面详细会讲到的啦)的任意整数,最大值的大小通常是固定的一个大整数。用法如下:int main(){prin...转载 2019-07-14 11:13:18 · 1252 阅读 · 0 评论 -
*s++中的*和++的优先级
*号和++属于同一优先级,且方向都是从右向左的,s++和(s++)作用相同。例子如下: char a[]="abdasf"; char *s=a; printf("%d\n",s);//打印一地址值x *s++; printf("%d\n",s);//打印一地址值x+1 printf("%c\n",*s);//打印b ...原创 2019-07-14 10:15:21 · 2156 阅读 · 1 评论 -
vector容器中存放结构体变量
转载他人文章,只为自己方便查找使用链接:vector容器中存放结构体变量vector容器中存放结构体变量有两种方式:1)存放结构体变量本身2)存放结构体变量的指针先介绍第一种方式,存放结构体变量到vector容器中,示例如下:结构体struct stu{ int num; float grade;};定义一个结构体变量的vector容器std::vector<st...转载 2019-08-26 23:02:26 · 1068 阅读 · 0 评论