随笔:78 文章:7 评论:38 引用:0
C++博客 首页 发新随笔
发新文章 联系 聚合管理

早就听说人快点的沸点是会逐渐升高的,所有要不断挑战自己才能保持获得快乐。刚上班的时候每次发工资都好开心,会去一遍遍的看工资条,特别有成就感。现在工资已经变成了一个数字,虽然月底的时候还是会期待,但是已经没有那么开心了。于是,要订新目标,找寻新快乐了,咔咔
posted @ 2014-11-03 09:58 未央 阅读(255) | 评论 (0)编辑 收藏
 
有可能是递归层数过多,跳出条件失败导致的。
posted @ 2014-03-18 20:42 未央 阅读(6600) | 评论 (0)编辑 收藏
 
使用QMainWindow可以方便的添加菜单栏、工具条等,但是在Ubuntu 12.04的系统下,菜单栏始终无法显示,后来得知是此系统将菜单栏做到的屏幕顶端。要想把菜单栏恢复到程序窗口中,需要卸载一些东西,使用下面的命令即可。 sudo apt-get remove appmenu-gtk appmenu-gtk3 appmenu-qt, 若想重装回来则 sudo apt-get install appmenu-gtk appmenu-gtk3 appmenu-qt。
此方法来源于
http://comments.gmane.org/gmane.linux.ubuntu.user.chinese/9778

在终端启动gedit或gvim的时候,总是出现类似的问题:undefined symbol: menu_proxy_module_load

找了下发现是安装呢macbuntu的时候,之后再卸载后发生的问题,好像是多删除某个东西,

在这里找到答案:http://alexsleat.co.uk/2010/10/19/gedit-failed-to-load-type-module-menu_proxy_module_load-ubuntu/

只需要重新安装下就可以了,执行命令如下:
sudo apt-get install appmenu-gtk

posted @ 2014-02-18 17:27 未央 阅读(2981) | 评论 (0)编辑 收藏
 
转自:http://www.cnblogs.com/qianyuming/archive/2011/03/09/1978910.html

在Qt中,undefined reference to ‘vtable for 通常出现在打开了宏 Q_OBJECT的程式当中。我遇到的情况是:

将类体及类体实现直接写到main.cpp里,没有包含 moc文件。这是一种常见的C++错误,通常就是类体中声明的虚函数没有找到实体。有时候你会说,我没有声明虚函数啊,怎么出来的? 那么建议你 Ctrl+左键追踪一下Q_OBJECT这个宏,这个宏其实默认给你的类加入了一些虚函数的声明(关于signal-slot实现的关键设施),而其实现实在moc_xx.cpp中自动生成的,如果你的编译过程没有产生这个文件,或者产生的这个文件没有参与到编译链接中去,那么就会发生这个错误。

现将一篇文章收录于此,以备查阅:

undefined reference to ‘vtable for 常见情况:

一:预编译器打开宏Q_OBJECT,声明若干个由moc处理(implement)的成员函数。如果得到类似于“undefined reference to vtable for LcdNumber”的编译错误(if you get compiler errors along the lines of "undefined reference to vtable for LcdNumber"),你可能是忘记了执行moc,或者忘记了将moc输出加入到link命令里。  某一个类中如果加入Q_OBJECT后,则link时提示:undefined reference to vtable for "xxx::xxx".删掉它则没有任何问题.  解决:尝试(1):把所有的obj文件和uic文件删除,重新编译.仍然失败.  去trolltech的mail lists找到原因: 因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake,问题解决.  在查找解决方法的时候,附带发现一点:
  qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.  这里可以发现问题的出现是因为没有moc生成相应的moc文件,之后连接就出问题。  我找了好多源码之类的问题,就是没有找pro的错误,后来想到qt中moc我们是有make做的  qt的make编译是根据Makefile来的,而Makefile是由pro文件来的。这才想到了找pro文件的错误。  

二:undefined reference to vtable for "xxx::xxx"  今天碰到了这个问题。  原因:qmake不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.  其他:
1.问题: QGLViewer中的函数不能正常link.解决: 翻看其源代码,发现是因为从源码安装libQGLViewer时,编译用了Qt 3,而我的程序中用Qt4 编译.所以必须重新用Qt4编译.但是,更改QTDIR 环境变量为Qt4后,重新编译的话,qmake生成makefile时就提示出错.进一步发现,是因为虽然设了QTDIR为Qt4,头文件和库文件都会使 用Qt4,但是moc,uic等都是用的qt3版的,再把PATH环境变量改动后,一切ok.  

2.问题:某一个类中如果加入Q_OBJECT后, 则link时提示:undefined reference to vtable for "xxx::xxx".删掉它则没有任何问题.解决:尝试(1):把所有的obj文件和uic文件删除,重新编译.仍然失败.去trolltech的 mail lists找到原因: 因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake,问题解决.在查找解决方法的时候,附带发现一点:qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.  

3. 看Qt的reference发现: 可以connect(pObjA, SIGNAL(someSignalA()),pObjB,SIGNAL(someSignalB()));这样pObjA发出的someSingalA 会导致pObjB发出someSignalB,从而形成信号接力.

posted @ 2014-01-24 21:14 未央 阅读(1136) | 评论 (0)编辑 收藏
 
为了说明QFileDialog::getOpenFileName()函数的用法,还是先把函数签名放在这里:
 
QString QFileDialog::getOpenFileName (
          QWidget * parent = 0,
          const QString & caption = QString(),
          const QString & dir = QString(),
          const QString & filter = QString(),
          QString * selectedFilter = 0,
          Options options = 0 )
 
第一个参数parent,用于指定父组件。注意,很多Qt组件的构造函数都会有这么一个parent参数,并提供一个默认值0;
 
第二个参数caption,是对话框的标题;
 
第三个参数dir,是对话框显示时默认打开的目录,"." 代表程序运行目录,"/" 代表当前盘符的根目录(Windows,Linux下/就是根目录了),也可以是平台相关的,比如"C:\\"等;例如我想打开程序运行目录下的Data文件夹作为默认打开路径,这里应该写成"./Data/",若想有一个默认选中的文件,则在目录后添加文件名即可:"./Data/teaser.graph"
 
第四个参数filter,是对话框的后缀名过滤器,比如我们使用"Image Files(*.jpg *.png)"就让它只能显示后缀名是jpg或者png的文件。如果需要使用多个过滤器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)";
 
第五个参数selectedFilter,是默认选择的过滤器;
 
第六个参数options,是对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来。
 
如果我要想选择多个文件怎么办呢?Qt提供了getOpenFileNames()函数,其返回值是一个QStringList。你可以把它理解成一个只能存放QString的List,也就是STL中的list<string>。
posted @ 2013-06-04 11:07 未央 阅读(25649) | 评论 (0)编辑 收藏
 

源地址: http://blog.renren.com/GetEntry.do?id=901621964&owner=265014936
美国新泽西州第一位华裔女法官Sue Pai Yang(杨柏斯瑜)来到之江访问,我也有幸和杨法官一起参加了座谈。

       一个华人,又是一个女人,在美国法律界这个白人以及男性力量主导的领域里,能够成为一名社会地位颇高的法官,杨法官的事迹令到场的我们感到十分佩服和崇拜。

       更令人羡慕不已的,是杨法官除了事业成功之外,还拥有一个幸福的家庭。杨法官的家族在美国生活。她本人担任了十年新泽西州劳工赔偿法庭的法官,去年三月刚从职场退休。她的丈夫是罗格斯大学生物学的教授。而她的两位女儿,都是出色的执业律师。杨法官本人在说话时,更是三句话不离家人。“我的丈夫现在也在浙江省”,“我的两个女儿最近也开始注重国际交流”,“我的丈夫对于收集茶叶特别有兴趣”……脱下法袍,言及自己的家人,杨法官身上那种属于法官的高高在上的气场就一扫而光。一身黑色洋装,和气亲切的她就是一个贤淑的妻子和慈爱的母亲。

 

       作为一个女性,如何能够兼顾自己的事业和家庭?

       席间,我问了杨法官这样一个问题。

       杨法官沉思良久,有些无可奈何地笑笑说:“这的确是一个很难的问题。女性相比于男性而言,必须要更多地考量家庭。什么时候结婚、什么时候生孩子、生了孩子之后应该如何抚养?这些现实的问题对于女性的职业生涯来说都具有毁灭性的打击。然而,如何平衡职业和家庭,你可以有不同的选择。”

 

       说着,她给我们讲述了自己两个女儿不同的人生路途。

       “我的两个女儿的年纪相差一岁,她们从法学院毕业之后,都进入了非常大的律师事务所工作,她们都已经结婚了,但是对于生育后代方面,却做出了不同的选择。”

       “我的大女儿选择先当一名母亲。她在自己的事业上升期怀上了第一个孩子。为了兼顾工作,她成了律所的第一个兼职律师,但是美国的律所工作实在太过繁忙,即便是所谓的‘兼职律师’,也必须承担每周四十小时以上的工作量。所以大女儿在生第二胎的时候,离开了律师事务所,虽然放弃了她之前在律所所累积的所有资历和人脉,但是       她拥有了两个活泼可爱的孩子,每天都生活地热热闹闹。”

       “而我的二女儿嫁给了另一名律师,他们互相支持对方,都觉得要先以发展事业为重,所以二女儿一直没有要孩子,在律所的发展也很好。她作为第二代表律师参与了史上最大的企业性别歧视案,代表150万名女性员工,状告零售业巨擘沃尔玛。现在的她已经被奥巴马总统提名,出任平等就业机会委员会委员。事业可谓是风生水起。”

       “在我看来,两个女儿虽然选择了两条不同的路,但是对她们自身来说,都是正确的。二女儿潜心事业,因为她能够找到一个支持她,并且和她有着一样价值观的丈夫,所以她在发展事业的过程中可以没有后顾之忧。而大女儿,我总是对她说。你现在的事业起步虽然比你的妹妹要晚一些,但是永远也不会太晚,况且你的生命力多了两个可爱的小天使陪伴,在你进步的路上,又会有更多的动力和支持。”

 

       “其实我自己在年轻的时候也遭遇过同样的困惑。”

       杨法官向我们讲述了自己的奋斗历史,

       “在我年轻时的那个年代,社会根本不认为女性需要事业,女性角色只是被赋予了照顾家庭,维持家计等等义务和责任。最适合女性的职业,永远只有家庭主妇、护士或是教师。我年轻时也没有想过自己要在事业上有什么建树,只觉得作为一个女人,服务好家庭就好。所以我在大学里的专业,是家政学,这个专业现在应该都没有了吧(笑)?”

       “我进入法学院其实是在我生了两个女儿之后。当时我已经三十多了,日复一日的主妇生活让我觉得枯燥乏味,我一直热衷于参加各种争取妇女平等地位的运动,但是家庭主妇和全职妈妈的生活却让我与理想完全脱节。当我仔细思索了自己的人生和目标之后,我做出了一个决定——我要去读法学院。这个在常人看来非常难以理解的决定,当时也遭到了许多反对之声,有的人觉得我作为法学院的学生来说年纪已经太大了,无法和其他年轻人竞争,无法负担法学院繁重的学业;有的人觉得我不务正业,女人的工作就是应该管好自己的家庭,我抛下自己的丈夫和孩子去读书,实在是不可理喻。”

       “我听到这些反对的声音,心里也很矛盾。我给我的丈夫打了一个电话,告诉他我想要去读法学院的这个决定。丈夫很平静地说,好的,你去读吧,我来支持你。”杨法官微笑着回忆那时丈夫的支持与鼓励。

       “美国的法学院以费用高和学业负担重闻名。我的丈夫不仅负担了我的学费,还在我读书期间,帮助我照料孩子的成长,让我能够安心读完法学院。等到我毕业之后,虽然已经四十岁了,但幸运的是,遇到一名赏识我的法官,将我带入了法官的职业生涯之中。”

       “所以,对于想要在职业上有所建树的女性,我想给你们的建议是:

work hard, building connects and most of all, getting supports from your family, especially from your husband.”

       (自身勤奋,建立人脉,最重要的是,获得家庭特别是来自丈夫的支持。)

 

 

       衡量一个男性的成功标准比较直接,往往从他的事业成就来说,经商的就看他资产多少,从政的就看他级别高低,学术的就看他研究成果,简单明晰,客观直接。

       但是社会对于女人的评价标准却复杂而又暧昧。

       只有家庭的女人,像一个永远围绕着丈夫和孩子的影子,面貌模糊,没有特性。你总是能够在菜市场里看到她们,四十多岁,头发蓬乱、脸色暗黄,埋头讨价还价,锱铢必较。

       只有事业的女人,即使赚再多的钱、有再高的地位,在外人的评价中总是:“她的事业真的做的很好,可是都没遇上一个好老公,孤苦伶仃的真可怜……”

 

       只有少数一部分的女人,能够在事业和家庭之间做到平衡。

       相信每个人的身边都有这样的女性:

       她们拥有自己的事业,在工作领域中做得专业严谨、风生水起;但同时,他们的家庭也会被称作是“模范家庭”,丈夫体贴孩子听话,最要命的是,这些女性自身通常都还非常光鲜漂亮,总是有一种优雅而淡定的气质,让人不禁感叹老天把所有的好东西都给了她。

       她们所获得的一切:充实的工作、其乐融融的家庭和良好的自身素养,真的只是因为命好吗?我不以为然。

 

       我的舅妈一直是我心目中好女人的榜样。

       她做医药行业多年,在国内同行中一直拥有数一数二的业绩,在业务方面从来都是公司的顶梁柱级别的人物。在生活中,她和舅舅的感情也很好,爱黏着舅舅,爱发嗲,我的妈妈经常用杭州话调侃她“千色色”。她自己也爱美,穿衣服不仅挑品牌还要看时尚度,发型总是新潮得体,每周去美容院,出门一定要打粉上淡妆。就连家里的装潢都显得非常浪漫有气质,到处充满了粉色、水彩画等等浪漫情怀。我一直很羡慕我的表姐,因为舅妈总是把她当做一个小公主。相比于表姐充满粉色气息、堆满人偶的公主房,我的房间就灰灰土土的,我觉得自己就是一个假小子。

       舅妈对我非常关心,我也乐于将自己的情感和成长问题向舅妈讨教。相比与我妈妈的敦厚质朴,舅妈更像一个聪明的女人,她很有女人味,而且总是能够在家庭和事业中取得完美的平衡,这令我羡慕不已。

       即便是事业如此成功,在家里收入最高的舅妈,在我的舅舅面前从来不会因为自己的收入更高而趾高气昂,相反的,在丈夫面前总是呈现一种小女人的姿态。她最爱说的话是“听我老公的就好啦。”在家庭中,她很好地运用了自己女性的温柔和细腻,将丈夫、女儿的生活安排的浪漫而又井井有条。她也很爱自己,从不吝啬于对自身的投资。她比我妈妈更常带我出去买衣服,她总是对我说“女孩子一定要穿得漂亮,不然怎么像是女孩子呢?”除了外貌,她还注重自己的内在投资,她最近报名了英语补习班开始学习英语,前几天她还打电话来告诉我她的英文名字叫Lily。

       舅妈一直是我们大家族里的核心人物,她为人和善,总是愿意帮助家人解决各种问题,而且还经常组织大家团聚,我们都说舅妈是个好女人,我们都很爱她。

       但是,我从不认为舅妈现在获得的一切都是因为“命好”,因为我切切实实地看到了她为了自己的事业和家庭付了多于常人的努力。

 

       家人们都说,舅妈特别像是台湾的女明星小s。我想,这不仅仅是因为舅妈留着短发的缘故。小s也一直以银幕前台风犀利,银幕后小鸟依人,执着于保持自己的身材和美丽的好女人形象著称。这些好女人们,其实都有一些共同的地方,也许这就是她们能够同时兼顾自己家庭和事业的秘诀:

 

 

       首先,她们都很擅长于自己身份的转换。

       在工作的时候就算再怎么拼搏厮杀、统帅千军万马,在家里的时候,就是一个依赖丈夫的小女人。阴阳有别,自然界从一开始就给了男女不同的分工。作为女性,我们有柔软的身体和细腻的皮肤,有纤细的感触和敏感的神经。所谓异性相吸,发掘并且良好运用自己的女性特征,无疑是我们的制胜法宝。在职场上,也许女性必须身着戎装,用职业化的方式模糊性别,但在家庭中,女性总是要承担起作为一个温柔的妻子和慈爱的母亲的职责。不把工作带进生活,也不把生活带进工作,两手都抓,两手都硬。

 

       其次,家庭和事业大体平衡,但家庭会更加重要一些。

       由于社会对男女双方有着不同的评价标准,作为妻子,应该支持自己的丈夫在事业的投入与拼搏,做好大后方。男主外女主内,这是从古流传至今的分工模式,皇帝在前朝指点江山、维持天下大局,皇后在后宫管理内宫事物,维持皇宫日常的平稳发展。所谓照顾好家庭,不仅仅是指夫妻及子女的小家,还有父母、亲人在内的大家庭。女人若是不能够照顾好自己的公婆父母,不能够和妯娌伯叔相处和睦,就算在职场上拥有再多的人脉也不能够说她的情商高。就算事业上再忙再累,自己的家庭和家人总是好女人们关注的第一位。

 

       第三,爱自己,保持进步的心。

       一个女人只有爱自己,保持自己的健康美丽,并且让自己不断地进步,丈夫才会持续地爱你。在二十几岁的时候,每一个女孩都有年轻的活力和吹弹可破的肌肤,都是黄金一般的美丽,但是这种美丽是粗糙而又短暂的,如果不加以升级和维护,它就会随着时间飘散。作为一个女人,保持魅力的方式就如同写书,内容单调纸质粗糙只会让人翻了两页就不想再读,而若是故事精彩纷呈,曲折动人,内容精彩,发人深省,使人爱不释手,这样的女人,才是一本常年热销的好书,她的魅力只会随着年龄的增加而增加成熟的风韵。

 

       第四,亲自一定要给家人做饭,以及清洁自己的家。

       天海佑希在《gold》中饰演一位以事业和培育子女的成功而闻名的母亲,她在台词中说,作为一个母亲,做饭和清洁是一定要亲力亲为的两件事。一个好妈妈或是一个好妻子的形象,很大一部分是和“暖暖的菜肴”以及“干净舒适的家”所联系在一起的。亲手给自己所爱的丈夫和孩子做饭,这将会成为他们心中永远的“家的味道”。同时,也只有一个干净整洁的家才能让家人们感觉到温馨舒适,作为女主人,应该为自己的家庭营造出一种这样的氛围。丈夫在外辛勤工作,回到家当然是希望有一杯热茶可以喝,一个热水澡可以洗,当然还会期待有自己妻子的理解和笑脸。

 

       第五,找到一个尊重你,并且支持你梦想的丈夫。

       爱情总是甜蜜的,青春总是美好的。但是爱情不是生活的全部,“有情饮水饱”也只是空话而已。从长远考虑,爱情的基础是有足够的物质条件,能够让两个人都不为五斗米折腰,能够追求一些精神层面上的价值提升。社会并没有期待女性能够有多少个性和能力,所以女性在追求自己的梦想时,很容易遇到社会上的歧视和障碍,在这个时候,来自家庭的支持就必不可少。一个懂得尊重女性、懂得帮助女性实现她们梦想的男人本身也一定是一个优秀而又包容的人,只有这样的人,才值得我们去爱,去一生相守。

 

 

       作为一个女人,虽然在自然界被当做更脆弱的一方,但是我们自己不能将自己的命运完全寄托在男人的身上,要自己修炼,给自己一个足够强大的灵魂。

 

       克林顿和希拉里都是耶鲁大学毕业的。克林顿知道希拉里的前男友是修理汽车的,在他当选了总统之后,就对希拉里说:“你选择我是英明的,如果你选择了他,现在可能还在耶鲁修汽车。”希拉里反唇相讥:“如果我当年选择了他,他早就当总统了,你还不知道在哪儿干什么呢!”克林顿虽然有210的高智商,但若没有希拉里作为克林顿竞选总统时的竞选班子里的得力干将,在克林顿的竞选之路上的付出和帮助,克林顿也不会有今日之辉煌。希拉里对克林顿来说有着毋庸置疑的影响。

 

       我从来没有想过凭着自己这几年黄金的青春、年轻的身体和容貌就能够换来一个从天而降的好丈夫。一切都要自己努力,培养自身气质、努力工作学习、与爱人交流沟通。如果好逸恶劳,那么即使挂了饼在你的脖子上,你也会饿死。相反的,女性应该利用自己二十几岁的学习黄金时间将自己的能力提升到更高的台阶,养成良好的生活习惯,静下心来思索自己的人生目标,自信自爱,找到自己的特色。爱自己,那么自然有人来爱你。

 

       我努力学习外语,读书看报,走出国门独立生活、留学体验,这一切都只是想让自己成为一个更加成熟、更加沉稳、更加全面的女性。

       当我洗脱了自己身上的稚气,我才能够沉稳淡定地处理随处可见的挑战;

       当我学会照顾自己,我才能够爱别人;

       当我自己拥有一个独立的灵魂,我才能够获得我所期冀的,来自爱人的尊重和支持。

       我努力生活,只有这样,当我遇到一个好男人的时候,我才能够理直气壮地说:

       I deserve this.

 

       我不奢望自己成为多么有钱、多么有社会地位的女性。

       在我眼中,女性的成功无异于两个字——“平衡”:掌握好家庭与事业的平衡,掌握好爱情与亲情友情的平衡,掌握好张弛度,掌握好人生的平衡。

       我努力做到经济独立,这样才能够人格独立;我想在结婚之前给自己买一套房子,这样就不会因为婚房之类的物质条件影响我的婚姻选择。

       我很在意自己的爱好培养,这让我拥有独特的个性;我喜欢画画、喜欢写字,即使再忙,我也会每周抽时间来画画和写文章,我看着喜欢的人的照片画素描,我的文章让我的朋友们更加了解我的内心。

       我学着关心、学着欣赏、学着分享,爱别人也是一种需要培养和练习的能力。

       我努力地做这些,只是坚信,更好的我才能够配更好的你。

 

       女孩,在二十几岁的年纪,谁都是迷茫的,没有地位、没有钱、未来也看不清。

       但是,

       Seize the opportunity when it comes alone. Cherish your life, your lover.

       请相信,只要你努力生活,生活就会给你最好的东西。

 

 

EmilyHUANG

@ HANGZHOU

2013.4.16

posted @ 2013-05-05 15:52 未央 阅读(326) | 评论 (0)编辑 收藏
 

转自:http://www.ctogo.net/313.html
WOWCode的主体部分基本已经完成了,对于我自己来说,其实已经足以应付我的需要了,不过如果发布的话,实在还是拿不出手,因为很多地方还需要完善,一些对我自己来说多余的功能也没有完成,今天尝试将程序移植到了另一台机子上,却出现了中文乱码问题,记录之。

也许你在用这个方法实现中文化,但它确实不够严谨

Laguage» C++ Title» 出现频率最高的办法
  1. #include <QTextCodec>  
  2. int main(int argc, char *argv[]) 
  3. {  
  4.            QApplication app(argc, argv);  
  5.            //设置中文开始
  6.            QTextCodec::setCodecForTr(QTextCodec::codecForName(“gb18030″)); 
  7.            //设置中文结束
  8.            return app.exec();  
  9. }  


很多地方都会告诉你,这样可以实现QT支持中文,包括我看的教程书上也是,他甚至告诉我要支持中文必须加入这段代码,但我想告诉你,这个办法是有问题的,而且这个问题还不小!我在两台同样是XP系统的机子上移植就出现了中文乱码问题,而且所有中文都是用了tr()的。所以请别迷信那些教程,实践才是真理!

你可以尝试这个方法

Laguage» C++ Title»
  1. #include <QTextCodec>  
  2. int main(int argc, char *argv[]) 
  3. {  
  4.            QApplication app(argc, argv);  
  5.            //设置中文开始
  6.            QTextCodec *codec = QTextCodec::codecForName(“GB2312″);  
  7.            QTextCodec::setCodecForLocale(codec);  
  8.            QTextCodec::setCodecForCStrings(codec);  
  9.            QTextCodec::setCodecForTr(codec);  
  10.            //设置中文结束
  11.            return app.exec();  
  12. }  

虽然这个方法看似更为严谨,你可以尝试,不过这么写还是会有问题,至少没有解决我的问题。这也是我网上看到的出现频率也挺高的方法,不过我想说的是:其实这个办法治标不治本,因为它后面只是对拓宽对中文支持的范围,而一般我们都建议把中文写在tr(“”)里。

推荐个比较保险的办法

Laguage» C++ Title» 我推荐的方法
  1. int main(int argc, char *argv[]) 
  2. {
  3.     QApplication a(argc, argv);
  4.     QTextCodec *codec = QTextCodec::codecForName(“System”);    //获取系统编码
  5.     QTextCodec::setCodecForLocale(codec);
  6.     QTextCodec::setCodecForCStrings(codec);
  7.     QTextCodec::setCodecForTr(codec);
  8.     return a.exec();
  9. }

这里获取了系统字体编码,解决了我的问题,个人也觉得这个办法应该是个不错的解决方案。

也可能是字体选择不当造成的乱码

如果你始终解决不了乱码问题,可以尝试设置下字体,但其实是否是字体造成的乱码的方法很简单,如果出现的是一个个方块,便是字体设置不当,否则,优先考虑编码设置。

posted @ 2013-05-03 08:10 未央 阅读(848) | 评论 (0)编辑 收藏
 
转自:http://hi.baidu.com/jzai_cn/item/85d28e11cdc1cbe45e53b16b
posted @ 2013-04-24 23:17 未央 阅读(539) | 评论 (0)编辑 收藏
 

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.

For example,
Given [100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4.

Your algorithm should run in O(n) complexity.

题解:
因为整数的范围非常大,而且有负数,所以用map来标记和查找元素。
无序找连续元素,可以从某一已有元素开始,递增,递减的查找和它连续的元素是否存在,找过的元素及时从map中删除。
本来想用hash_map,但是没有这个库。。。所以用了map
class Solution {
public:
    
int longestConsecutive(vector<int> &num) {
        
// Start typing your C/C++ solution below
        
// DO NOT write int main() function
        map<intint> hmap;
        hmap.clear();
        
int n = num.size();
        
for(int i=0; i<n; i++){
            hmap.insert(pair
<intint>(num[i], i));
        }
        
int ans=0, cnt=0;
        map
<intint>::iterator it;
        
for(int i=0; i<num.size(); i++){
            
int cur = num[i];
            it 
= hmap.find(num[i]);
            cnt
++;
            
if(it!=hmap.end()){
                map
<intint>::iterator iter;
                
while(1){
                    iter 
= hmap.find(++cur);
                    
if(iter==hmap.end())
                        
break;
                    cnt
++;    
                    hmap.erase(iter);
                }
                cur
=num[i];
                
while(1){
                    iter 
= hmap.find(--cur);
                    
if(iter==hmap.end())
                        
break;
                    cnt
++;    
                    hmap.erase(iter);
                }
                
if(ans<cnt)
                    ans 
= cnt;           
                cnt
=0;
            }
            cnt
=0;
        }
        
return ans;
    }
};
posted @ 2013-03-19 09:53 未央 阅读(2577) | 评论 (0)编辑 收藏
 

Given a string s, partition s such that every substring of the partition is a palindrome.

Return the minimum cuts needed for a palindrome partitioning of s.

For example, given s = "aab",
Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut.

题解:
类似矩阵连乘的动归思路。
dp[i][j]=min(dp[i][k]+dp[k+1][j]+1), i<=k<j.
但是用这个方程的时间是O(n^3),简化dp[i][j]为dp[i],表示从0到i的minCut.
dp[i]=min(dp[k]+1(s[k+1, i]是回文串, dp[k]+i-k(s[k+1, i]不是回文串)), 0<=k<i.
这个方法在BOJ上过了,但是在leetcode上面 Judge Large 还是超时。。。
还没找到更快的方法。。。路过的人帮解一下吧。。。
class Solution {
public:
    
bool IsPalindrome(string s, int i, int j){
        
if(i==j)
            
return true;
        
while(i<j){
            
if(s[i++]!=s[j--])
                
return false;
        }
        
return true;
    }
    
int minCut(string s) {
        
// Start typing your C/C++ solution below
        
// DO NOT write int main() function
        int n = s.length();
        
if(n==0 || n==1)    
            
return 0;
        vector
<int> min;
        
for(int i=0; i<n; i++)
            min.push_back(
0);
        
int tmp, ans;
        
for(int inter=1; inter<n; inter++){
            
if(IsPalindrome(s, 0, inter)){
                min[inter]
=0;
            }
            
else{
                ans 
= n+1;
                
for(int k=0; k<inter; k++){
                    
if(IsPalindrome(s, k+1, inter))
                        tmp 
= min[k]+1;
                    
else
                        tmp 
= min[k]+inter-k;
                    
if(tmp<ans)
                        ans 
= tmp;
                }
                min[inter]
=ans;
            }
        }
        
return min[n-1];   
    }
};

经高人hadn't指点,超时是因为判断回文串太慢,加上记忆化数组判断回文串就pass了^-^
class Solution {
public:
    vector
< vector<int> > map;
    
int IsPalindrome(string &s, int i, int j){
        
if(i>j) return false;
        
if(map[i][j]!=-1)
            
return map[i][j];
        
if(i==j){
            
return map[i][j] = 1;
        }
            
        
if(s[i]!=s[j])
            
return map[i][j] = 0;
        
else{
            
if(j-i==1)
                
return map[i][j] = 1;
            
else
                
return map[i][j] = IsPalindrome(s, i+1, j-1);
        }
            
        
    }
    
int minCut(string s) {
        
// Start typing your C/C++ solution below
        
// DO NOT write int main() function
        int n = s.length();
        
if(n==0 || n==1)    
            
return 0;
        vector
<int> min, vtmp;
        
        min.clear(); vtmp.clear(); map.clear();
        
for(int i=0; i<n; i++){
            min.push_back(
0);
            vtmp.push_back(
-1);
        }
        
for(int i=0; i<n; i++)
            map.push_back(vtmp);
            
        
int tmp, ans;
        
for(int inter=1; inter<n; inter++){
            
if(IsPalindrome(s, 0, inter)){
                min[inter]
=0;
            }
            
else{
                ans 
= n+1;
                
for(int k=0; k<inter; k++){
                    
if(IsPalindrome(s, k+1, inter))
                        tmp 
= min[k]+1;
                    
else
                        tmp 
= min[k]+inter-k;
                    
if(tmp<ans)
                        ans 
= tmp;
                }
                min[inter]
=ans;
            }
        }
        
return min[n-1];   
    }
};
posted @ 2013-03-18 23:05 未央 阅读(3624) | 评论 (1)编辑 收藏
仅列出标题
共8页: 1 2 3 4 5 6 7 8 
CALENDER
<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(6)

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜


Powered By: 博客园
模板提供沪江博客