关闭

[置顶] c++11新容器 tuple

tuple顾名思义是元组的意思,提起元组应该并不陌生,很受欢迎的python就有元组的概念,大家感兴趣可以去看看,这里主要介绍tuple的结构和常用使用方法。首先来看官方给出元组的说明:元组(tuple)由预先确定数量的多种对象组成.元组可以看作是struct数据成员的泛化.TR1 tuple类型的C++11版本获益于像可变参数模板这样的C++11语言特性.TR1版本的元组需要一个由实现定义的包含的...
阅读(58) 评论(0)

[置顶] C++中的list容器如何插入和删除第i个元素

使用C++中的list容器,假设定义了一个list nlist(30);和迭代器list::iterator pnlist = nlist.begin(); 现在我想删除nlist中的第i个元素如何删除?我写的是nlist.erase(pnlisr+i);但是报错,原因是一个整型的i不能跟nlist直接相加。请问如何才能解决了这个问题?list::iterator pnlist = nli...
阅读(83) 评论(0)

[置顶] C++ STL入门篇

STL中有迭代器、算法和函数对象,但是对于大多数c++程序员来说,最值得注意的还是容器。容器比数组功能更加强大、更加灵活。他们可以动态增长(缩减),可以管理自己的内存,总之非常方便我们解决很多问题。下面介绍c++提供的STL封装:1.标准STL序列容器:vector,string,deque和list。 2.标准STL关联容器:set, multiset, map和multimap。 3.非标准...
阅读(51) 评论(0)

[置顶] [JavaScript] Chrome启用ES6支持

输入:chrome://flags/选择:启用实验性 JavaScript Mac, Windows, Linux, Chrome OS, Android...
阅读(96) 评论(0)

[置顶] linux gcc版本如何升级到gcc4.8.2

一、简易安装 操作环境 Red-hat 6.2 64bit,yum安装自带版本4.4.7,不能支持C++11的特性,需要升级到4.8.2。1.1 获取安装包并解压wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2 tar -jxvf gcc-4.8.2.tar.bz2当然,http://ftp.gnu.org/gnu/gcc 里...
阅读(147) 评论(1)

[置顶] ffmpeg滤镜专题2-高斯模糊

高斯模糊主要目的是对图像或视频进行去噪,但是如果窗口范围取值过大,则会有很严重的模糊,正态分布显然是一种可取的权重分配模式。在图形上,正态分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。计算平均值的时候,我们只需要将”中心点”作为原点,其他点按照其在正态曲线上的位置,分配权重,就可以得到一个加权平均值。滤镜参数:gblur高斯模糊滤波,参数详解:sigma 设置水平sigma,高斯模...
阅读(72) 评论(0)

[置顶] ffmpeg滤镜专题-1 反交错处理

ffmpeg中的滤镜可以在解码后实现源视频图像增强,例如滤波。今天开了第一个专题,主要讲述ffmpeg中对视频出现拉丝效应的处理。滤镜参数:yadif 对输入视频进行反交错处理,去除拉丝效应,下面直接上官方给出的参数解释:mode 采用的交错模式。它接受以下的值:0, send_frame 对于每帧以帧扫描的方式输出。1, send_field 对于每个场以帧扫描方式输出。2, send_fra...
阅读(84) 评论(0)

[置顶] CImg库入门介绍

CImg库早在2004年就已经被使用,它是一个跨平台的C++的图像处理库,提供了加载、处理、显示、保存等一系列功能,其中的图像处理功能尤其强大。如果对图像处理要求不是很严格,可以结合CImg库进行封装和开发。 下面是官方提供的CImg的Demo: 主页地址:http://cimg.sourceforge.net/ 下载地址:http://cimg.sourceforge.net/downloa...
阅读(64) 评论(0)

[置顶] centos7安装Mysql问题总结

问题一: 运行mysql出现 Unit mysql.service not found[root@localhost ~]# systemctl start mysql.service Failed to start mysql.service: Unit mysql.service not found. 解决方案:# yum install mariadb-server -y //如果已安装...
阅读(128) 评论(0)

[置顶] Linux 使用gdb对c/c++代码进行调试

c/c++开发的工作者常常需要考虑跨平台使用的问题,那么在linux上编译是必不可少的一部分。gdb是linux下的c/c++调试工具,具体安装(这里用的是centos的系统,其它系统也大同小异):yum install gdb我们来一段c++代码,命名为test.cpp:#include using namespace std; int main(){ int a=0; int...
阅读(79) 评论(0)

[置顶] github账号与gitlab同一电脑下不同SSH Key配置

很多情况下,大家都会遇到一个问题,自己电脑上配置的SSH Key可以与自己的gitbub账号匹配,却不能匹配公司内部的git服务器账号,即gitlab。下面我将讲述这两种账号的配置过程: 1. github账号SSH Key配置 (1) 设置git的名字和邮箱,这点很重要,尤其是对于gitlab的配置git config --global user.name "你的用户名" git config...
阅读(372) 评论(0)

C++ explicit作用

C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色: 1)构造器 ; 2)默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。 这样看起来好象很酷, 很方便。 但在某些情况下(见下面权威的...
阅读(17) 评论(0)

危险的_strdup函数

_strdup函数定义如下:char * __strdup (const char *s) { size_t len = strlen (s) + 1; void *new = malloc (len); if (new == NULL) return NULL; return (char *) memcpy (new, s, len); } 从...
阅读(22) 评论(0)

STL 理解相等和等价的区别

在STL中,比较两个数是否相等,这样的操作很常见。例如:通过find函数在某个区间寻找第一个等于某个值的元素时,find能够比较两个对象是否相等,与之相似的还有set容器的插入操作,判断插入的键值是否与set中存在的值相等。 在实际操作中,相等的概念基于operator==,但是有一点必须要知道,x==y为真时,并不代表他们所有的数据成员都有相等的值。例如:class widge { publi...
阅读(29) 评论(0)

避免使用vector<bool>

vector作为容器,有以下两点不对:1)它不是stl容器 2)它并不存储bool 如果c是包含对象T的容器,而且c支持operate[],那么下面的代码必须能够被编译:T *p= &c[0]因此,vector是一个容器,那么下面的这段代码必须可以被编译:vector v; bool *pb=&v[0]; //变量地址初始化一个bool*变量结果,上述表达式并不能编译,原因是vecto...
阅读(32) 评论(0)

STL 去除多余的容量

虽然stl容器可以动态分配空间,尤其是顺序容器。但是很多情况下,为了避免对内存的多次分配,将会预先给容器分配很大的内存空间,等数据分配完成后,再进行去除多余的空间,这种方式可以有效提供程序的效率。这里采用下面的做法,可以从容器中去除多余的向量:vector(constestants).swap(constestants);代码如下:#include #i...
阅读(56) 评论(0)

STL 慎重选择删除元素的方法

假设你有一个容器,Containerc,针对连续内存容器(vector、deque或string),那么最好用erase-remove的习惯用法:c.erase(remove(c.begin(),c.end(),4),c.end());对于list,可以采用如下方式:c.remove(4);当c为标准关联容器时,例如set,multiset,map或multimap时,使用任何名为remove的操作...
阅读(317) 评论(0)

linux fork()函数浅析

fork()顾名思义是分支的意思,也就是克隆程序后面的代码至新的进程中,直接上程序:#include #include int main() { pid_t fpid; //fpid表示fork函数返回的值 int count = 0; fpid = fork(); if (fpid < 0) p...
阅读(33) 评论(0)

JS添加按钮交互

实现span内容增加和删除操作,代码如下: 新增按钮 新增 <script type="text/j...
阅读(83) 评论(0)

c++读入文本所有内容

如何用c++将文本所有内容全部读入呢?可以使用getline函数,进行逐行读入。直接上程序:#include #include #include using namespace std;int main() { char *filePath = "E:\\test.txt"; ifstream file;...
阅读(73) 评论(0)

Linux chmod 命令

chmod—-改变一个或多个文件的存取模式(mode)chmod [options] mode files只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。options:-c,–changes 只输出被改变文...
阅读(79) 评论(0)

linux可执行文件找不到共享库

今天在执行一个ffmpeg程序时,提示:ffmpeg: error while loading shared libraries: libx264.so.152: cannot open shared object file: No such file or directorygoogle了一下,是由于找不到lib这个文件。解决办法:一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库...
阅读(62) 评论(0)

MingW64+msys编译x264

很多情况下,我们需要在windows下使用linux下的开源库进行调试,那么如何编译64位的静态库? 1. 首先安装Mingw64和msys,安装地址见附录。 假设Mingw64的安装目录为d:/Mingw64, msys的目录在d:/msys,进入d:/msys/1.0/etc,修改fstab文件,改为:d:/Mingw64 \mingw2.运行d:/msys/1.0/msys.b...
阅读(52) 评论(0)

C/C++中输入带空格的字符串用法总结

在C/C++中,传统的输入流scanf(“%s”,&str) 和cin>>str,遇到空格会返回空格之前的字符串。但是在很多应用中,我们需要字符串中可以同时包含空格,那么前面的两种方法现在就不可用了,在C/C++中给我们提供了那些输入流处理方式呢。下面是我总结的几种常用的方法:(1)gets(char *str) 需要包含头文件#include (2)scanf("%[^\n]...
阅读(73) 评论(0)

ffmepg滤镜专题3-旋转

滤镜: transpose 在输入视频中转置行,并随意翻转。 dir 指定转换方向。passthrough 如果输入几何与指定值指定的值匹配,就不应用转置。它接受以下的值:‘none’ 总是应用转置。‘portrait’ 保存肖像几何(当 height >= width).‘landscape’ 保护景观几何(当 width >= height).Default value is...
阅读(42) 评论(0)

C++ STL list

list作为C++STL顺序容器,担任着重要的决策。它的插入和删除的时间复杂度为O(1),底层采用双向链表的结构。不多说了,直接上代码:#include #include #include #include using namespace std; //创建一个list容器的实例LISTINT typedef list<...
阅读(49) 评论(0)
59条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:5964次
    • 积分:551
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:12篇
    • 译文:0篇
    • 评论:3条
    博客专栏
    文章分类
    最新评论