C++
文章平均质量分 57
wdkirchhoff
这个作者很懒,什么都没留下…
展开
-
C++ vector 的resize和reverve
1、resize(n) 调整容器的长度大小,使其能容纳n个元素。如果n小于容器的当前的size,则删除多出来的元素。否则,添加采用值初始化的元素。2、 resize(n,t)多一个参数t,将所有新添加的元素初始化为t。而reserver()的用法只有一种reserve(n)预分配n个元素的存储空间。了解这两个函数的区别,首先要搞清楚容器的capa原创 2014-12-18 00:37:20 · 9552 阅读 · 0 评论 -
普通用户vim打开文件编辑后以root保存
常常忘记了sudo 就直接用vim 编辑/etc 内的文件,等编辑好了,保存时候才发现没权限。 好的,曲线救国的方法是先保存个临时文件,退出后再sudo cp 回去。不过实际上在vim 里面可以直接完成这个过程的,命令就是如此。 查阅vim 的文档(输入:help :w),会提到命令:w!{cmd},让vim 执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin 传入。 tee 是一原创 2015-07-31 16:07:07 · 2447 阅读 · 0 评论 -
含有虚函数的类sizeof大小
#include using namespace std; class Base1{ virtual void fun1(){} virtual void fun11(){}public: virtual ~Base1();}; class Base2{ virtual void fun2(){}}; class DerivedFromOne:原创 2015-02-14 23:31:06 · 3934 阅读 · 0 评论 -
C++ sizeof 一题
class A{ int a; short b; int c; char d;};class B{ double a; short b; int c; char d;};求sizeof(A),sizeof(B)分别是多少。答案是16,24sizeof(原创 2015-01-21 23:18:40 · 828 阅读 · 0 评论 -
大小端模式
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。在32位小端的机器原创 2015-01-21 23:26:36 · 1090 阅读 · 0 评论 -
const和#define的区别
(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。 const常量会在内存中分原创 2014-12-14 00:01:20 · 1192 阅读 · 0 评论 -
九度OJ 1066 字符串排序
题目1066:字符串排序时间限制:1 秒内存限制:32 兆特殊判题:否提交:4919解决:1983题目描述: 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果输入: 一个字符串,其长度n输出: 输入样例可能有多组,对于每组测试样原创 2014-12-30 00:05:22 · 2212 阅读 · 0 评论 -
提升C++输入输出性能的三个方法
做题的时候,由于数据量大,很多情况下得用scanf和printf代替cin和cout用于输百度了一下,原来而cin,cout之所以效率低,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低,而这段语句可以来打消iostream的输入输出缓存,可以节省许多时间,使效率与scanf与cin相差无几,还有应注意的是scanf与printf使用的头文件应是stdio.h而不是iostream。原创 2014-12-13 00:01:38 · 4151 阅读 · 1 评论 -
华为机试—四则运算
题目:四则运算问题描述:输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值注:3.1、表达式只含 +, -, *, / 四则运算符,不含括号3.2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3.3、要考虑加减乘除按通常四则运算规定的计算优先级3.4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0原创 2014-12-27 21:57:22 · 4733 阅读 · 0 评论 -
华为机试—字符串压缩
题目:字符串压缩通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz原创 2014-12-27 22:36:07 · 3969 阅读 · 0 评论 -
华为机试—选秀节目评分
题目:选秀节目评分选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委;judge_type[i] == 2,表示大众评委,n表示评委总数。 打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均原创 2014-12-27 22:12:24 · 3867 阅读 · 0 评论 -
华为机试—回文字符串
给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。#include #include using namespace std; int huiwen(char *a){ int len = strlen(a); int i,j=len-1; for(i=0;i<len/2;i++,j--){原创 2014-12-27 21:59:26 · 3761 阅读 · 0 评论 -
九度OJ 1371 最小的K个数
#include#include#includeusing namespace std;int main(){ int k,n; while(~scanf("%d%d",&n,&k)) { priority_queue,greater >q; int t; for(int i=0;i<n;++i) {原创 2014-12-29 00:07:18 · 2028 阅读 · 0 评论 -
找出三个只出现一次的数字 C语言实现
题目:一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。分析:如果我们把数组中所有数字都异或起来,那最终的结果(记为x)就是a、b、c三个数字的异或结果(x=a^b^c)。其他出现了两次的数字在异或运算中相互抵消了。我们可以证明异或的结果x不可能是a、b、c三个互不相同的数字中的任何一个。由于x与a、b、c都各不相同,因此x^a、x原创 2014-12-24 19:23:39 · 11529 阅读 · 0 评论 -
do{...}while(0)的意义和用法
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引原创 2014-12-19 16:30:18 · 753 阅读 · 0 评论 -
Spacemacs 如何在指定工程下删除所有以fprintf开头的行?
在Emacs-china论坛中,有网友问如题所示的问题。其实这样的需求在真实项目中却遇到的不少,比如需要上线运行,需要删除所有类似的输出语句。我使用helm-ag做的,搜索工程下的所有fprintf开头的行,然后对搜索结果进行C-c C-e编辑 C-c C-c对编辑结果进行确认,gif中的str2str.c的277行的测试语句展示了修改前后的效果,fprintf函数都被注释了。原创 2016-05-24 17:01:34 · 712 阅读 · 0 评论