c++
Turisla
这个作者很懒,什么都没留下…
展开
-
【FFmpeg系列】FFmpeg解码视频文件为YUV
音视频解码流程音视频解码流程如下如所示:FFmpeg视频解码流程主要步骤解析打开并读取输入文件 int ret = 0; pFormatCtx = avformat_alloc_context(); if (avformat_open_input(&pFormatCtx, inputPath, nullptr, nullptr) < 0) {...原创 2019-11-29 23:47:47 · 867 阅读 · 2 评论 -
c++中指针与引用的区别
// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ /* 指针可以为空,引用不能为空 指针可以被赋值,引用不能被赋值 指针可以指向堆中的空间,引用不能指向堆中的空间原创 2013-03-06 16:44:31 · 491 阅读 · 0 评论 -
c++将临时对象赋值给引用和指针的不同
如果将一个函数返回的临时对象赋值给一个引用,那么这个临时变量的生存周期会不少于引用的生存期。而如果将一个函数返回的临时对象赋值给一个指针,当函数执行完成后会调用对象的析构函数来释放对象所占的内存。但是在那块内存没有被再次占用的时候还是可以访问里面的数据的。因为析构函数析构某个对象后只是告诉编译器这个对象所占的内存不再被这个对象所独占,但并没有删除内存中的数据,所以还是可以访问的。但是这样是相当原创 2013-03-06 17:11:56 · 1655 阅读 · 0 评论 -
c++成员变量初始化
// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class Human{public: Human():height(25),wid(30){cout<<"机器人制造完毕!\n性能为:"<<height*wid<<endl;}private原创 2013-03-06 21:34:39 · 477 阅读 · 0 评论 -
c++对象成员变量的构造和析构顺序
// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class demo {public: demo(){cout<<"无参构造函数"<<endl;}; demo(int i){x=i;cout<<"有参构造函数"<<endl;} int原创 2013-03-06 22:07:48 · 5443 阅读 · 0 评论 -
c++杂项(一)
一、c++中,定义类的时候,如果没有自己定义构造函数,当生成对象的时候,系统会调用默认的构造函数。但是如果自己定义了构造函数,不管是默认的还是有参的构造函数,当生成对象的时候,系统将不再调用默认构造函数。二、在堆中申请一块空间,比如有类A,A *p=new A,delete p,两句代码,系统会自动调用析构函数删除堆中的对象。三、explicit关键字,禁止隐式转换。explicit de原创 2013-03-09 16:18:46 · 491 阅读 · 0 评论 -
c++重载运算符
#include "stdafx.h"#include using namespace std;class num{public: num(){n=new int;*n=3;} num(int i){n=new int;*n=i;} int get()const{return *n;} ~num(){delete n;n=NULL;} //const num原创 2013-03-12 16:26:52 · 515 阅读 · 0 评论 -
c++ sort函数、strcmp函数
sort函数头文件:algorithm功能:排序(默认是升序)如:b[100];sort(b,b+100);可以自己定义cmp比较函数来决定sort函数的比较规则。#include #include #include #include using namespace std;struct G{ char name[101]; int age;原创 2014-03-04 16:10:53 · 1761 阅读 · 0 评论 -
排序题
题目描述:对输入的n个数进行排序并输出。输入:输入的第一行包括一个整数n(1接下来的一行包括n个整数。输出:可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。每组测试数据的结果占一行。样例输入:41 4 3 2样例输出:1 2 3 4原创 2014-07-21 09:55:30 · 451 阅读 · 0 评论 -
c++用引用来传值
使用引用来传值会比指针简单很多。// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class A{public: A(){cout<<"构造函数"<<endl;} A(A&){cout<<"赋值构造函数"<<endl;} ~A(){c原创 2013-03-06 16:26:59 · 566 阅读 · 0 评论 -
c++按值传递和按址传递对象
按值传递如果传递的变量较大的话,会造成内存的不必要开销。因为按值传递会调用复制构造函数,生成传递变量的副本。// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class A{public: A(){cout<<"构造函数"<<endl;} A原创 2013-03-06 15:52:28 · 1039 阅读 · 0 评论 -
HDOJ 1004 Let the Balloon Rise
Problem DescriptionContest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest原创 2015-03-17 11:34:17 · 394 阅读 · 0 评论 -
c/c++ strstr()函数实现
函数名称:strstr()函数头文件:string.h函数原型:char *strstr(const char*source,const char*obj);函数功能:在字符串source中查找字符串obj,若找到,返回找到位置处的指针,若找不到,返回NULL。实现过程:char *strstr(const char*source,const char*obj)原创 2015-04-08 16:49:57 · 2782 阅读 · 0 评论 -
c++双字节类型
双字节,也就是宽字节。在c++中汉字、韩文、日文都是双字节。以下是双字节的使用。 // HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ setloc原创 2013-02-17 21:09:26 · 3201 阅读 · 0 评论 -
c++空指针赋初值
定义了指针变量以后如果不给他指定指向某一变量地址,将会产生意想不到的后果。所以定义了指针变量,如果暂时不使用,一定要赋初值。代码如下:// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv原创 2013-02-19 16:34:59 · 2602 阅读 · 0 评论 -
c++在堆中创建对象被对其操作
// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class Human{public: Human(){cout<<"构造函数执行完毕。"<<endl;i=100;} ~Human(){cout<<"对象删除完毕。"<<endl;} i原创 2013-02-25 16:21:05 · 444 阅读 · 0 评论 -
c++用new运算符在堆中申请空间及其他操作
// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int *p=new int; *p=20; cout<<*p<<endl; delete p;//delete原创 2013-02-25 15:50:23 · 2131 阅读 · 0 评论 -
c++中typedef的用法(一)
1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。2. typedef &转载 2013-02-19 17:41:37 · 824 阅读 · 0 评论 -
c++指针常见错误
先看一段代码:// HelloWorld.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int *p=new int; *p=3; cout<<"将3赋值给指针p后,指针p的值为:"<<原创 2013-02-25 16:58:12 · 1576 阅读 · 0 评论 -
c++引用与变量的关系
引用其实是被引用变量的别名。一旦定义完成,引用就会与被引用的变量连在一起,成为好基友永远也不分开(地址一样)。但是这个引用智商不行,容易被骗,别的变量赋给他值他也接受,而且还会牵连原来的变量也改变值。#include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ in原创 2013-03-05 17:40:13 · 1390 阅读 · 0 评论 -
C++中typedef的用法(二)
1. 由于对typedef理解不够,因此从网上摘录了一些资料,整理如下: 2. 3. C/C++中typedef struct和struct的用法 4. 5. struct _x1 { ...}x1; 和 typedef struct _x2{ ...} x2; 有什么不同? 6. 7. 8. 其实, 前者是定义了类_x1和_x1的转载 2013-02-19 17:44:06 · 456 阅读 · 0 评论