04 2013 档案

摘要:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees翻译版:http://hawstein.com/posts/binary-indexed-trees.html#readcf这篇文章给出了poj上的例题http://duanple.blog.163.com/blog/static/7097176720081131113145832/需求:希望有一个数组a,可以快速计算连续的一段元素的和,如a[i]+a[i+1]+...+a[j],普通的数组对这种查询的时间是和j-i成 阅读全文
posted @ 2013-04-20 21:17 ttang 阅读(185) 评论(0) 推荐(0)
摘要:const double *cptr;//cptr 是一个指向constdouble 的指针,我们可以重新赋值cptr 使其指向不同的对象但不能修改cptr 指向的对象任何试图将一个非const 对象的指针指向一个常量对象的动作都将引起编译错误对传入某函数的const vector<>&类型,既不可以改变vector中的元素,也不可以对x做赋值(如果不加const,两者都可以),如下例:void f(const vector<int>& x){ //x.clear();//err //x.push_back(2);//err //x[0] = 5;//e 阅读全文
posted @ 2013-04-20 13:21 ttang 阅读(237) 评论(0) 推荐(0)
摘要:我希望要一个ArrayList<Entry>,类似C++中的pair,但是Map.Entry是个接口,不能实例化,可以像下面这样写HashMap<Integer, Integer> G = new HashMap<Integer,Integer>();G.put(1, 9); G.put(4, 6); G.put(2, 8);G.put(3, 7); ArrayList<Map.Entry<Integer, Integer>> arrayList = new ArrayList<Map.Entry<Integer, Int 阅读全文
posted @ 2013-04-20 11:27 ttang 阅读(11215) 评论(1) 推荐(0)
摘要:简单地说,在keyset方法返回的set上做修改会改变原来的hashmap,这也许不是你想要的,于是形成一个隐藏的bug一个简单的例子//a simple demoimport java.util.HashMap;import java.util.Set;public class TestHashMap { public static void main(String[] args) { HashMap<Integer, Integer> G = new HashMap<Integer,Integer>(); G.put(1, 1); G.put(2, 4);... 阅读全文
posted @ 2013-04-17 20:45 ttang 阅读(3650) 评论(0) 推荐(0)
摘要:需求是:我希望为“g++-static-libgcc -static-libstdc++”设置别名"g++",这样就不必每次都输入这个很长的option了(至于这个需求的产生,看这里)另外,如果ls能够完成dir的功能,也不错本文主要取自http://superuser.com/questions/49170/create-an-alias-in-windows-xp,我只是在其中给出的若干种中选了一种简单、易行、可靠的方法,我的系统是win7--32位1、创建一个bat文件,内容如下doskey g++=g++ -static-libgcc -static-libstdc 阅读全文
posted @ 2013-04-06 10:20 ttang 阅读(19207) 评论(2) 推荐(4)
摘要:今天写了一个C++程序,按照以往的习惯编译,Windows报“XXX.exe已停止工作”,gdb单步执行的时候,在一条声明语句处出现了下面的信息:Program received signal SIGSEGV, Segmentation fault.0x6fc89edc in libstdc++-6!_ZNSsC1Ev () from d:\Program Files\gnuplot\bin\libstdc++-6.dll原来是编译时链接的dll和运行时的dll不是同一个,这个地方应该是mingw下的c++库,结果却变成了gnuplot下的库了解决办法:(1)用静态链接,g++用选项-st.. 阅读全文
posted @ 2013-04-06 09:17 ttang 阅读(959) 评论(0) 推荐(0)
摘要:来源于contains方法,因为它接受object作为参数,太宽松了,以至于不小心写错后,eclipse都无法提供错误提示,而且这种错误不会有异常,运行时也不会因错误而中断,是纯粹语义上的错误,这种错误在我看来是最可怕的。 讲一下我的这个错误。 我有一个HashSet<Integer> A;用来记录那些曾经被插入队列的节点(Vertex),对于一个新来的节点,如果不在A中,就插入队列。后来我发现这个队列无限制增长,折腾很久发现原因是这样的:while(!queue.isEmpty()){ if(A.contains(node)){ continue; } if(... 阅读全文
posted @ 2013-04-04 00:03 ttang 阅读(21313) 评论(0) 推荐(0)