c++
pmt123456
这个作者很懒,什么都没留下…
展开
-
memset中sizeof(动态分配的数组)的问题
数组初始化的时候常用for()循环,不过如果考虑效率的话,最好用memset(),下面简单介绍以下memset()。函数原型:void *memset(void *s, int ch, size_t n)函数解释:将s中前n个字节替换为ch并返回s; memset:它包含在或者中。作用是在一段内存块中填充某个给定的值,它的操作对象为单个字节,是对较大的结构体或数组进行清零操作的一种原创 2016-03-06 14:59:47 · 1811 阅读 · 0 评论 -
hdu1263(结构体排序/二维map)
题目链接:水果题目大意:给出n笔交易,交易包括水果产地,水果名字和价格,要求按如下格式输出产地|----水果名称1(收益)|----水果名称2(收益)按字母序排列题目分析:做法1:结构体排序用place和name存储当前的产地和名字,向后比较,每比较到不同的产地就输出上一个的place和和name如果比较到相同的产地但名字不同,就输出上一个的名字原创 2017-01-06 09:01:09 · 690 阅读 · 0 评论 -
类中自身类的对象不能做自己的数据成员
C++中为什么类中自身类的对象不能做自己的数据成员,但是做静态数据成员、引用类数据成员等可以?student{ private: student a;//错误! student *b;//正确! static student c;//正确!}类定义中不能包含自己本身的对象,否则会引起像无限递归的问题,而原创 2016-03-12 11:28:29 · 4363 阅读 · 0 评论 -
C++stringstream的clear()清空误区
在C++中可以使用stringstream来很方便的进行类型转换,字符串串接。 不过注意重复使用同一个stringstream对象时要 先继续清空,而清空很容易想到是clear方法,而在stringstream中这个方法实际上是清空stringstream的状态(比如出错等),真 正清空内容需要使用.str("")方法。 扩展: streamstri转载 2016-03-10 15:25:44 · 2634 阅读 · 0 评论 -
删除指向对象中元素的指针和指向对象指针的顺序
const UCHAR *ROI = objectROI->data(); .....delete objectROI;ROI = NULL;如果这么写产生了错误应该为objectROI->save_data(left, ROI_sizes); ROI = NULL;delete ROI;delete objectROI;原创 2016-03-10 15:20:45 · 453 阅读 · 0 评论 -
const
1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性 const int Max=10转载 2016-03-06 20:35:57 · 346 阅读 · 0 评论 -
STL vector中的元素删除
删除vector中的元素,最容易的方法就是使用vector的erase()函数。vector vec;for ( vector::iterator iter = vec.begin(); iter! = vec.end();){ if(某条件成立) iter = vec.erase(iter); else iter ++;}如果要清空v转载 2016-03-06 18:34:06 · 740 阅读 · 0 评论 -
vector的size_type
for( vector ::size_type j=vec.size()-1; j>=0; --j ) 会出现死循环for( int j=vec.size()-1; j>=0; --j ) 却是正确的。size_type是unsigned int型的,当j==0之后,j--,那么j理应为-1,但是unsigned属性,让它变为一个正数了,所以会无限循环!!!转载 2016-03-06 16:52:48 · 884 阅读 · 0 评论 -
iterator与const_iterator及const iterator区别
如果你传递过来一个const类型的容器,那么只能用const_iterator来遍历。void Method(const vector vInt){ vector::const_iterator iter;}示例:vector ivec; vector::const_iterator citer1 = ivec.begin(); const ve转载 2016-03-06 16:08:14 · 873 阅读 · 0 评论 -
C++中const修饰二级指针(从类型‘int**’到类型‘const int**’的转换无效)
void func(const int ** arg){} int main(int argc, char **argv){ int **p; func(p); return 0;}这个代码用gcc编译会出现这样的错误:main.cpp: 在函数‘int main(int, char**)’中:main.cpp:8:8: 错误: 从类型‘int**’转载 2016-03-06 15:23:32 · 3124 阅读 · 1 评论 -
sort函数写在类内和类外的区别
当cmp函数写在类外时:[cpp] view plain copybool comp(Interval a, Interval b) // 注意comp函数可以为static bool或者bool,返回值为bool类型。a.start { return a.start } class Solution { pu转载 2017-03-10 09:16:57 · 2461 阅读 · 1 评论