随笔分类 - C/C++
摘要:今天做了一道水题,POJ-1004,水题一个,12个double类型的数求平均数 但是, 这个看起来没毛病的代码,竟然WA了, 又WA两次之后,这不是代码的事,分别用GCC,G++,C++提交,到C++的时候,A了!!! 总结总结,避免再犯 放在最先:G++和GCC分别是C++和C的编译器,C++和
阅读全文
摘要:C++关于struct和class的区别,可以看上一篇文章:c ++ class和struct[转] 结构体成员列表初始化,来个例子: 下面fork一个不错的文章介绍类的构造函数列表初始化,其实都一样,一通百通 原文链接 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员
阅读全文
摘要:不得不提一下,hash_map未加入在C++11标准中。 在VC中编译: 在GCC中编译: 既如此,还是用unordered_map吧! C++ 11标准中加入了unordered系列的容器。unordered_map记录元素的hash值,根据hash值判断元素是否相同。map相当于java中的Tr
阅读全文
摘要:string类 string类 头文件:#include<string> 名称空间:using namespace std; 初始化: string Str; String类的构造函数和析构函数如下: string类操作 string类与字符串数组的转换 C++提供的由C++字符串得到对应的C_st
阅读全文
摘要:头文件:#include <stdlib.h>函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str);atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数st
阅读全文
摘要:补充: vector 删除指定元素: vec.erase(remove(vec.begin(), vec.end(), val), vec.end());remove()返回的是删除后的尾部迭代器,必须调用erase()显式地删除其后的元素。 erase()删除迭代器指向的元素。 eg. vec.e
阅读全文
摘要:#include<bits/stdc++.h>包含了目前c++所包含的所有头文件!!!! 测试结果POJ不支持HDU,NYOJ支持
阅读全文
摘要:内存分配方面: 堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样代码 中的delete语句
阅读全文
摘要:set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。 set和multiset的区别是:set插入的元素不能相同,但是multiset可以相同。
阅读全文
摘要:string::npos,这是一个很大的数 npos 是这样定义的: static const size_type npos = -1; 因为 string::size_type (由字符串配置器 allocator 定义) 描述的是 size,故需为无符号整数型别。因为缺省配置器以型别 size_
阅读全文
摘要:尽管后缀自加和后缀自减操作符 ++ 和 -- 在输出其旧值之后才会执行运算, 但这里的“之后”常常被误解。没有任何保证确保自增或自减会在输出变量原值之 后和对表达式的其它部分进行计算之前立即进行。也不能保证变量的更新会在表 达式 “完成” (按照 ANSI C 的术语, 在下一个 “序列点” 之前,
阅读全文
摘要:这不具有可移植性。它试图在序列点之间两次修改变量 a, 而这是无定义的。 例如,有人报告如下代码: int a = 123, b = 7654; a ^= b ^= a ^= b; 在 SCO 优化 C 编译器 (icc) 下会把 b 置为 123, 把 a 置为 0。
阅读全文