
C++
chaoi
踏实
展开
-
如何使用迭代器iterator循环删除容器中的元素?
STL中任何容器都可以使用迭代器进行元素的遍历,当需要在遍历中删除某些元素时,容器中元素的布局(位置或者排序)会随之改变,当前迭代器所指示的元素也会发生变化,这时继续递增或者递减迭代器进行后续元素的遍历时就要特别小心。容器的元素删除方法很大程度上依赖于操作系统上STL的实现版本,不同的系统和STL版本均有不同的定义。详见正文分析。 STL中的容器主要分两类,一是顺序存储的,转载 2007-03-03 20:41:00 · 13918 阅读 · 2 评论 -
浮点数的大小比较
浮点数在转换过程中都会有误差的,所以浮点数不能直接比较其大小,一般在比较两个浮点数的时候是比较他们之间的差值,如果两个数之间的差值处于一个能接受的范围之内的话,那么,我们就认为这两个浮点数是相等的,一般认为A与B的差大于某个很小的数时就认为A>B,比如:if( A-B > 0.001 ){ A>B... }一般来说这个可以接受的误差值就是计算机的转换误差,C++标准库提供了这个误差,你可以原创 2007-05-28 16:06:00 · 14348 阅读 · 2 评论 -
使用vector的编译错误
#include #include using namespace std; //A void main() { vector coll; for(int i=1;i coll.push_back(i); for(int j=0;j cout cout} 上面是正确的,但是转载 2007-05-28 15:53:00 · 8324 阅读 · 0 评论 -
c语言中取绝对值的函数
/* ABS.C: This program computes and displays * the absolute values of several numbers. */ #include #include #include void main( void原创 2007-09-18 22:37:00 · 67193 阅读 · 0 评论 -
try{} catch(…){}
以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:try { BYTE* pch ; pch = ( BYTE* )00001234 ; //给予一个非法地址 *pch = 6 ; //对非法地址赋值,会造成Access Violation 异常 } catch(...) { A转载 2008-01-17 09:28:00 · 7938 阅读 · 0 评论 -
C++中string的用法
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object classid转载 2008-10-04 12:37:00 · 1589 阅读 · 1 评论 -
string用法总结
1. 定义和初始化string s1;string s1(s2);string s1(“year”);string s1(n, ’x’);//s1为c的n个副本string s1(s2,pos,len);//s1被初始化成s2中从pos开始的len个字符的副本。2. 读写cin>>s;//忽略开头空白字符,到遇到空白字符为止cout也可以作为循环的条件,如while(cin>>s){…}getli转载 2008-10-04 12:39:00 · 961 阅读 · 0 评论