
C++--基础
文章平均质量分 75
山西茄子
多媒体工程师,从事ffmpeg,gstreamer,视频编码,deepstream等开发,做做笔记。
展开
-
7.2 让数组1的最大值跟数组2的最小值相等
题目:已知 a,ba,ba,b 两个整数组成的数组,每次能够把 aaa 或者 bbb 里面的数 +1+1+1 或者 −1-1−1,问最少需要多少次能够使 aaa 的最大值小于等于 bbb 的最小值?例: a=[1,2,3], b=[2,7,8];答: 1次,把 aaa 中的 333 减—,最大值为 222,小于等于 bbb 的最小值。解答:int getMax(int arr[], int num){ int max = 0; for (int i = 0; i < ...原创 2021-07-02 23:42:23 · 165 阅读 · 0 评论 -
C--文件操作
_lseek,_lseek returns the offset, in bytes, of the new position from the beginning of the file. _lseeki64 returns the offset in a 64-bit integer.例: /* Find current position: */ pos = _lseek(原创 2013-04-29 20:57:59 · 865 阅读 · 0 评论 -
C语言常用知识点
格式化%c 字符%s 字符串%d 整形%hd 短整型%ld 长整型%-3d 输出的数字占3个字符的位置,-号表示左对齐。%0x 十六进制类跟结构体的区别C的struct与C++的class的区别:struct只是作为一种复杂数据类型定义,不能用于面向对象编程。C++中的struct和class的区别:对于成员访问权限以及继承方式,class中默认的是pr原创 2013-04-25 16:06:31 · 982 阅读 · 0 评论 -
C++类
构造函数如何让一个类不能生成对象?1》构造函数写成保护或私有成员,2》类函数纯虚函数。拷贝构造函数如下例子:class Point{public: Point(int xx = 0,int yy = 1) { x = xx; y = yy; } Point(Point& p) { x = p.x; y = p.y;}protected:priv原创 2012-08-16 19:18:01 · 628 阅读 · 0 评论 -
C++面试题
如何让一个类不能创建实例1虚基类,2构造函数为私有函数。explicit的作用解析:explicit构造函数是用来防止隐式转换的。请看下面的代码:class Test1{ public: Test1(int n){ num = n; } //普通构造函数 private: int num; }; class Test2 { pub...原创 2012-09-09 17:08:38 · 703 阅读 · 0 评论 -
C语言问题
const的作用1 定义一个常量,2 强制数据不被函数修改。值传递,指针传递,引用传递形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。指针传递:形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。原创 2012-10-23 18:27:04 · 785 阅读 · 0 评论 -
C/C++--常见错误
1 == 写成=2 T*p = new T[n],在用的时候一直用p,应该改为p+i,或者p[i]。3 stuct tname{ char*pdata }, tp* ptname = new tname; if(ptname->pdata!=NULL),如上没有给pdata赋初值,但是后面却进行判断,应做构造函数进行赋初值。原创 2013-05-29 19:15:21 · 866 阅读 · 0 评论 -
模版函数与类模板
函数模板利用函数模板,可以建立一个具有通用功能的函数,支持不同的函数参数和返回值,达到减少代码书写量的目的。函数模板的语法形式如下: template // T代表在函数模板中要使用的通用类型,在该函数的调用过程中,T被具体化。 函数定义例如重载函数,求绝对值的函数只要声明一个函数模板:template T abs(T value){ ret原创 2012-11-06 17:49:24 · 691 阅读 · 0 评论 -
C++--字符串
字符串间的转换CString 转char *char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);stri原创 2013-04-08 09:16:18 · 1103 阅读 · 0 评论 -
OBJECT-C语法
1 减号表示对象方法,加号表示静态方法。2 定义部分,清楚定义了类的名称、数据成员和方法。 以关键字@interface作为开始,@end作为结束。例子:创建方法//第一种创建方式:创建一个可用的对象Person *p=[Person new];//new方法的内部会分别调用两个方法来完成2件事情//1、使用alloc方法来分配存储空间(返回分配的对象)//2...转载 2019-05-15 20:52:58 · 1957 阅读 · 0 评论 -
虚函数表
虚函数虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用...转载 2012-10-07 10:25:28 · 734 阅读 · 0 评论 -
头文件中不要去定义函数与变量
如果现在在1.h文件中定义一个函数#includeusing namespace std;void fun1(){ cout}在源文件2.cpp中这样使用#include "1.h"//extern void fun1(); //有没有此申明都不报错void fun2(){ fun1();}在源文件3.cpp中这样使用,就会报错了转载 2014-04-04 16:02:36 · 1448 阅读 · 0 评论 -
c++ new operator与operator new的区别
关于c++ new操作符的重载你知道c++ 的new 操作符和operator new 的区别么?也许你还会问,他们有区别吗? 当你写下面这样的代码时,string *pa = new string("memory managerment"); 你使用的是new 操作符,这个操作符和sizeof 一样,是c++ 语言级别支持的。你不能改变它的语义,它做的事情总是不变的:分配足转载 2013-10-12 11:41:41 · 933 阅读 · 0 评论 -
C++著名程序库的比较和学习经验
1、C++各大有名库的介绍——C++标准库2、C++各大有名库的介绍——准标准库Boost3、C++各大有名库的介绍——GUI4、C++各大有名库的介绍——网络通信5、C++各大有名库的介绍——XML6、C++各大有名库的介绍——科学计算7、C++各大有名库的介绍——游戏开发8、C++各大有名库的介绍——线程9、C++各大有名库的介绍——序列化10、C++各大有转载 2012-11-13 00:17:32 · 942 阅读 · 0 评论 -
boost的简介与安装
简介boost是一套开放源代码的,高度可移植的C++库。它相当于C++标准库(STL)的改进与扩展。并且,它其中的不少模块,已被下一代C++标准库采用。的确,boost库非常注重与C++标准库之间协同性,用户对STL的许多学习或使用的体验,在接触boost时,会很自然地“似曾相识”。定位上,boost 库希望自己是一个可用于广泛的、不同业务方向的应用都能使用的基础库——这完全和STL的定义转载 2012-09-25 11:24:15 · 620 阅读 · 0 评论 -
指针强转的区别
最容易理解的解释:dynamic_cast: 通常在基类和派生类之间转换时使用;在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。const_cast: 主要针对const和volatile的转换. static_cast: 子类转基类(转载 2012-08-25 13:11:59 · 1476 阅读 · 0 评论 -
sizeof的总结
sizeof 1 指针全都是4。char* p = "0123456789"; sizeof(p) = 4;char*p = new char[100]; sizeof(p) = 4;2 数组要看个数跟实际内容。char p[] = "0123456789"; sizeof(p) = 11;char p[100] = "0123456789"; sizeof(p) =原创 2013-08-18 12:32:45 · 693 阅读 · 0 评论 -
数据类型转换
● 如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。double ←── float 高↑long↑unsigned↑int ←── char,short 低● 图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为doub转载 2013-09-15 13:55:53 · 683 阅读 · 0 评论