@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
1 for (CImageIndexItem* const* p = iter.NextValue(); p; p = iter.NextValue() )
2 {
3 if(*p)
4 {
5 TTime temp((*p)->iImageTime );
6 TTimeIntervalDays iInterval = homeTime.DaysFrom(temp);
7 if(iInterval.Int() > 2)
8 {
9 //如果超出期限,删除本地图片文件
10 (*p)->DeleteBitmap();
11 TBuf8<64> iname;
12 iname.Copy( *((*p)->iImageName) );
13 delete *p;
14 TInt why = iImageIndexArrayHashMap->Remove(iname);
15 iter.Reset();
16 }
17 }
18 }
图片引擎使用了RHashMap,结果在RHashMap::Remove的时候出现了很奇怪的问题,指针*p执行完Remove后被改变了指向地址,造成再次调用出现空指针错误,将对*p的调用调至Remove语句之上,在循环中会出现User208错误,根据官方的文档描述如下:This panic is raised by the member function Next()
of the internal class THashTableIterBase
if, while attempting to step a hash table iterator to the next entry, the iterator is found to point to an invalid table entry. This will typically occur if elements have been removed from the hash table without resetting the iterator. 于是在Remove之后添加iter.Reset(),问题解决,不过仍然不了解Remove里面对其做了什么操作造成类似的问题,Mark求解
Symbian C++ :
Undefined symbol: 'int operator==(enum TTrue, int)
TBool is ;
if( is == ETrue );
这种写法是错误的不能build
正确的方法是写成 if( is )
而且即使这种是正确的,写类似的代码也看起来太差劲了!
@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
很久没有更新我的Blog了,当然,之前写的也不怎么样:)
我今年本科毕业,7月5日入职新浪,到今天,已经两个月+1了,目前负责手机微博Symbian客户端触屏版的开发,
我的weibo,以后还是继续更新blog吧,见证我的职业生涯。
用QT Creater编程,如果没有自动补全是很痛苦的事情,于是便查阅了QT的文档,发现CTRL+SPACE是自动补全的快捷键;
但是在 Creater里使用居然没有效果,估计是输入法切换的冲突(CTRL+SPACE是我中英文输入的默认快捷键)
于是寻求解决方法,在QT Creater->Tools->Options... 里找到environment->Keyboard,发现TextEditor.CompleteThis命令,其快捷键是Ctrl+Space;
再后面添加Alt+/ (Eclipse里习惯的~~)后应用退出,再次进入Editor,仍旧无效果,重新找到TextEditor.CompleteThis点击那个红叉叉,将原快捷键删除后,添加Alt+/
成功,代码提示顺利。
题目要求不能开额外的数组,空间不允许
要求完成以下结果,比如输入abcdefgh 给定n为3则使得字符数组顺序变为defghabc
递归实现如下:
#include<stdio.h>
#include<string.h>
void swap(char *s1 ,int ls1, char *s2,int ls2){
if(ls1 == 0 || ls2 == 0) return;
if(ls1 == ls2){
for(int i = 0 ; i < ls1 ; i++ ){
s1[i] = s1[i] + s2[i];
s2[i] = s1[i] - s2[i];
s1[i] = s1[i] - s2[i];
}
}
else if(ls1 < ls2){
swap(s1,ls1,s2,ls1);
swap(s2,ls1,s2+ls1,ls2-ls1);
}
else {
swap(s1+ls1-ls2,ls2,s2,ls2);
swap(s1,ls1-ls2,s1+ls1-ls2,ls2);
}
}
int main(){
char s[100];
scanf("%s",s);
int n ;
scanf("%d",&n);
int len = strlen(s);
swap(&s[0],n,&s[n],len-n);
printf("%s\n",s);
return 0;
}
摘要: Java对文件进行了读写操作,信息存储在phonesnumber.txt里面
//Main.javapackage exp5_5;import java.io.IOException;public class Main { /** *//** &...
阅读全文
最大流最小割定理:最大流等于最小割,即max V(f) = min C(U, W)。
说明,自己的证法,如有错误请大家提出:
声明:最大流=|f|,割为=|[S,T]|
1、|[S,T]| >= |f| (易知,最大流可能比管子粗细还大?)
2、有如果有Df( |[S,T]| ) = 0 ,则一定是最大流(否则最大流的多于|[S,T]|的流量从何处流...)
3、如果当前流量已经最大,从源到汇的任意一条路径一定有饱和边(增广路法则)
4、*反证,如果对任意S,T没有Df( |[S,T]| ) = 0
取S ={源点},T={V-S};则有源点连接未饱和管道的另一端点K,然后取S={源点,K},T={V-S},则有源点连接未饱和管道的另一端点K1,然后取S={源点,K,K1},T={V-S},则有源点连接未饱和管道的另一端点K2.........当V-S = 汇点,我们发现源点,K,K1,K2,K3....汇点,为一条增广路(可能K1,K2不相连,而直接源点,K,K2)
得证。
摘要: http://www.w3school.com.cn/php/index.asp这里的函数查询很好array相关函数str相关函数很有用~PHP5.1以上时区需要设置:
ini_set('date.timezone','Asia/Shanghai');
<?php include_once "../conn....
阅读全文
折腾了一下午才配好了QtCreater+S60_sdk+Qt_for_Symbian的配置
在虚拟机中运行写的QT小程序如下:
注意几个问题:
一个是Qt_for_Symbian(4.6.2)最好最后装,这样QtCreater直接能够识别s60sdk和CSL和Carbide的目录
二是要注意将环境变量都配置好(运行Carbide安装后的“Configure environment for WINSCW command line”)
三是build成功却无法运行在虚拟机上的注意了,QtCreater的Projects选项卡中General部分要选择Show Details
Tool Chain 选择成WINSCW
如果有想搭这么个环境而犯愁有问题的 可以给我Email : hongtaozhy@qq.com 。。我悲剧这么久希望能帮到大家~