c++技巧
来源:互联网 发布:海通期货软件 编辑:程序博客网 时间:2024/06/16 09:51
1 typedef 为现有类型创建一个新的名称
如:typedef vector<类::类> SW SW即为vector<类::类>的名称
2、字符串拷贝
memcpy
函数原型: void *memcpy(void *dest, void *src, unsigned int count);
用法: memcpy(char[] name, vector<string> names.ct(i).c_str(), strlen(names.at(i).c_str())+1);
const char *c_str(); c没有string类型,通过string类对象的成员函数c_str()把string对象转换成c中的字符串样式。
3、c++new 和c malloc区别
当你new一个对象的时候,不仅仅为对象分配了空间,同时调用了对象的构造函数。同样的,当你delete一个对象时,在内存释放之前会调用对象的析构函数。
如果你使用malloc和free,构造函数和析构函数都不会被调用。对于没有构造函数和析构函数的特殊情况下,这个小例子不会起作用。
4、大小写转换
CString str = "abc"; 小写转大写
str.MakeUpper();
MakeLower() 大写转小写
5、const
三种形式
const int a=1;
int b=2;
1 const int * ptr1=&a;
2 int * const ptr2 = b;
3 const int * const ptr3 = a;
看这种东西,从右向左看。第一个中,ptr1之后是*号,说明ptr1是指针,接着为int,说明是指向int对象的指针,最后是const,则表示是指向const int 型对象的指针。说明ptr1不能改变a的值,但是可以指向别的const int 型的对象(是个常量)。
第二个中,先表明了ptr2是个常量,再说明是指针,最后是指向int型的,总的意思是,ptr2是一个指向int对象的常量指针,那么指针的值(也就是ptr2地址单元中存储的对象地址)不能改变,即ptr2永远指向b,但是可以改变b的值。b
的值变了,*ptr2也会变。
第三个中,前后都限定为const ,则既不能通过ptr3改变a的值,ptr3也不能再指向其他对象。
6、类型转换
void* 转int
int a = *((int*)p);
7、引用&
注意在函数的引用中,所引用的值会变化
int add(int &a){return a++;}
int d = 32;int e = add(d);
结果: d = 33; e = 32;
8、内联函数inline
在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。
栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。
inline仅是一个对编译器的建议
inline bool Stack::push(string &val){if(!full()){m_stack.push_back(val);return true;}elsereturn false;}
9、二级指针的使用(待研究)
GeoBaseData* geoData = (GeoBaseData*)(*pData);
printf("%d,%d\n", *p,*(++p));
在执行printf时,括号里的参数是从右往左的顺序进行读取的,也就是说先执行 *(++p),也就是p先加一再指针,指向的是arr第2个元素3,然后在执行*p
- c技巧
- C/C++-技巧-宏
- C/C++-技巧-宏
- [C\C++]读入优化【技巧】
- C/C++-技巧-获取时间
- c中的一个技巧
- c 语言小技巧
- .net c#asp 技巧
- c内存调试技巧
- C小技巧
- C语言编程技巧
- 澄海3C技巧
- C技巧(一)
- C/C++技巧收集
- Android C编程技巧
- C++--CListCtrl使用技巧
- C/C++编码技巧
- C-BGP使用技巧
- cocoa touch 框架结构图
- 内存数组流(ByteArrayInputStream、CharArrayReader、StringReader)
- 文件解析漏洞总结-Apache
- 1003. Emergency (25)
- Satellite Photographs(dfs)
- c++技巧
- 养成这6个编程好习惯,助你减少90%BUG
- 利用对象的思想创建二叉树并实现四种遍历(广序,先序,中序,后序)-python3版
- iOS 一一 AutoLayout之VFL实现
- 数据结构-循环链表
- Java数据结构与算法
- 生产者消费者模型
- [HDOJ] 1002 大数加法(坑爹格式
- TCP编程