re: 回顧編程十年 Alex-Lee 2012-04-09 08:30
都不過如此,身體健康、家庭和睦比啥都強(qiáng),共勉。
太好了,正需要一個(gè)這個(gè)文章。一直沒有找全,今天終于發(fā)現(xiàn)了。
re: 心情:日夜的混亂 Alex-Lee 2012-02-24 08:59
他們語法還是有很多相近的地方,要是敲C#和JAVA轉(zhuǎn),人都得瘋了。
這個(gè)問題在C語言的很多書里頭都說明白了,樓主自己看書不細(xì)心。就是個(gè)簡單的指針問題。這個(gè)問題現(xiàn)在也很好查,典型的內(nèi)存泄露,直接可以定位到代碼行。
@jacky
這個(gè)估計(jì)是沒有數(shù)字簽名引發(fā)的。
贊樓主
謝謝兩位,就是有點(diǎn)籠統(tǒng)啊。。。
@空明流轉(zhuǎn)
好像已經(jīng)得罪人了。好人沒做成,反倒惹了一身騷。一番好意,反倒,哎,罪過啊。還是下周做天義工,希望能洗刷自己的靈魂。
暈,自己打錯(cuò)字了:技術(shù)水平絕對高超(水平湊合)。這下估計(jì)得得罪不少人了 @_@
1、覺得自己技術(shù)好、能力強(qiáng),收入不平衡,不要蒙在心里,不要怕,直接找領(lǐng)導(dǎo)談吧,領(lǐng)導(dǎo)會給出他的看法的。就是談崩了也沒什么了不起,不是嗎?
2、學(xué)習(xí)王江民吧。希望你知道他,并能深入的了解他。
3、我比你大兩歲,工作比你多2年。曾經(jīng)的211/985 學(xué)生,知名企業(yè)300-400人的研發(fā)隊(duì)伍里頭,技術(shù)水平絕對高超,人緣也好,領(lǐng)導(dǎo)也喜歡我。我的工資也不到10K,憑自己水平進(jìn)百度、騰訊,弄個(gè)年薪20W不存在問題,可是我并不想去。生活中還有很多其他的值得自己去付出。一言難盡,找到自己喜歡的,讓自己內(nèi)心平靜吧。
找到一個(gè)聰明、正值、有責(zé)任的人,當(dāng)領(lǐng)導(dǎo)的好好培養(yǎng)他,這才是本事。一個(gè)優(yōu)秀的人才,他不會隨便跳槽的。就是這個(gè)面試者,他的這些言論,他也是學(xué)來的。至于其中當(dāng)架構(gòu)師的因由等,其實(shí)憑一個(gè)剛工作一年的哥們理解,有點(diǎn)期望太高。就是工作3-5年了,能理解這個(gè)嗎?我相信很多人不理解。我工作5年了,我也理解不了架構(gòu)師是啥東西。他要是一年就能理解了,那就不是你simon能給罩得住的人。既然simon好像很懂似的,為什么不培訓(xùn)他們?傳播自己的見解?simon只不過是個(gè)傻子而已。simon問的陷阱問題,你是找一個(gè)能干活的,還是找一個(gè)能給發(fā)現(xiàn)陷阱的?不能發(fā)現(xiàn)陷阱就不聰明、不能干活?這個(gè)simon讓我想起了網(wǎng)上流傳的huawei人力資源沒事整人玩。公司需要人力資源的業(yè)績,業(yè)績怎么來?找點(diǎn)整人的招,上唄!
re: 哈希結(jié)構(gòu) Alex-Lee 2009-10-22 18:54
@fcc
程序經(jīng)過編譯,沒有什么問題。LM_MALLOC等是我寫的一個(gè)內(nèi)存分配封裝函數(shù),用于將所有的分配的內(nèi)存地址使用單鏈表連接,在debug時(shí),用于發(fā)現(xiàn)內(nèi)存泄露問題,release時(shí)直接就是malloc。這是我實(shí)現(xiàn)的一個(gè)發(fā)現(xiàn)內(nèi)存泄露的方法,靈感來源于《微軟C編程精粹》。
HASH_TABLE是DATA_NODE*型。不好意思,在摘代碼時(shí)把
typedef DATA_NODE* HASH_TABLE;
給忘掉了。謝謝提醒。
@李佳
@Vincent
受金融危機(jī)影響,今年工作不怎么忙。幾乎將數(shù)據(jù)結(jié)構(gòu)與算法忘得差不多了。這陣子看《算法導(dǎo)論(中文版)》潘金貴版。這本書講得很好,有廣度,也很有深度。數(shù)學(xué)基本忘得差不多了,其中關(guān)于數(shù)學(xué)論證時(shí)間復(fù)雜度的相關(guān)方面看得馬馬虎虎。哈希的開放地址法就沒怎么看明白。謝謝大家的回復(fù),有不對的地方,請大家指點(diǎn)。
re: 優(yōu)先級隊(duì)列 Alex-Lee 2009-10-18 18:25
@OwnWaterloo
寫錯(cuò)了,呵呵,刪除操作復(fù)雜度是O(lgn),這就改過來。謝謝。
re: Confused! 總結(jié)下心情 Alex-Lee 2009-04-15 16:51
@Sunshine Alike
陳梓瀚(vczh)是牛人,我們需要好好向他學(xué)習(xí)。我也是到現(xiàn)在這C++做界面真是郁悶得要死。咱兩可以一起學(xué)習(xí)。
re: MFC下CSocket編程詳解 Alex-Lee 2009-04-15 16:38
@Sunshine Alike
你先把unicode代碼轉(zhuǎn)換成多字節(jié)碼后發(fā)送,接收時(shí)反過來。win api有multibytetowidechar,widechartomultibyte 兩個(gè)函數(shù),
C運(yùn)行庫有mbstowcs_s,wcstombs_s,具體可以參加msdn,或者網(wǎng)上搜索下。
re: 看看這只鴨子上藏了些什么? Alex-Lee 2009-03-21 01:11
@規(guī)劃
你的機(jī)器可能有問題,可能是內(nèi)存或者主板不穩(wěn)定。我的機(jī)器3個(gè)游戲都跑了20+分鐘沒有問題。
re: 看看這只鴨子上藏了些什么? Alex-Lee 2009-03-20 20:16
確實(shí)好神奇啊。太強(qiáng)大了,神起!敬禮!
@陳梓瀚(vczh)
謝謝。shared_ptr使用delete的話,這樣操作數(shù)組確實(shí)是問題。因此,對于設(shè)計(jì)數(shù)組類型的安全類,不能選用shared_ptr這么處理,這樣看來,類設(shè)計(jì)時(shí)選用shared_ptr就是錯(cuò)誤的。這樣,終于搞明白了,為什么開始有人說這個(gè)設(shè)計(jì)糟糕透頂了。這個(gè)設(shè)計(jì)確實(shí)是有問題的。這次,印象深刻,徹底糾正了思想上的錯(cuò)誤。
re: 面試中碰到的一個(gè)C++陷阱 Alex-Lee 2009-03-19 14:52
雖然博主沒有說的非常的明白,但是這中討論,讓大家獲益匪淺。還是不錯(cuò)哦。
@yindf
@陳梓瀚(vczh)
首先謝謝大家給的意見,果然高手如云。再次拜服。
兩位意見不錯(cuò),特別是構(gòu)造函數(shù)那個(gè)錯(cuò)誤比較大。這個(gè)確實(shí)是疏忽了。Exceptional c++中的NewCopy函數(shù)可以借用解決這個(gè)問題。
另外,異常安全有三個(gè)等級,依次是無資源泄露,狀態(tài)一致,無異常拋出。一般能實(shí)現(xiàn)到狀態(tài)一致是很不錯(cuò)了。
我談?wù)勛约涸O(shè)計(jì)的初衷。
1,像PIMP/COW實(shí)現(xiàn)太過復(fù)雜,啰嗦,不太喜歡。
2,使用shared_ptr是因?yàn)椋悄苤羔槺旧砭褪菫榱朔乐乖羔樫Y源泄露問題而設(shè)計(jì)的,這樣就達(dá)到了無資源泄露的基本保證。就不需要處理原始指針問題。
因此,我的設(shè)計(jì)就是保證狀態(tài)一致問題。也即是說,我設(shè)計(jì)這個(gè)類就是只要保證狀態(tài)一致即可。如果確實(shí)使用char*這樣的原生指針作為數(shù)據(jù)成員,那么這個(gè)類確實(shí)需要重新設(shè)計(jì),這毋庸置疑。
3,equal()函數(shù)自己也有些疑惑,到底是只要兩個(gè)字符串的值相等就行還是需要指向的是同一塊字符串內(nèi)存呢?或者myString對象本身就應(yīng)該是同一個(gè)對象?4,關(guān)于維護(hù)length長度問題,由于使用shared_ptr實(shí)現(xiàn),因此,就不需要維護(hù) length成員。否則,如果使用shared_ptr與length,還需要維護(hù)兩者之間的一致。當(dāng)然,如果使用原生指針char*而不是使用shared_ptr,那么提供length成員變量是應(yīng)該。
5,由于使用shared_ptr,因此就不需要引用計(jì)數(shù)了。shared_ptr本身是引用計(jì)數(shù)的實(shí)現(xiàn)。myString封裝中沒有其他的成員,不涉及占過多內(nèi)存的問題。
這篇文章的發(fā)表,確實(shí)是讓我學(xué)習(xí)到了不少東西,再次謝謝大家,希望大家多提意見,這樣才能快速成長。
re: 面試中碰到的一個(gè)C++陷阱 Alex-Lee 2009-03-18 10:55
6.函數(shù)與虛函數(shù)
編譯器為每個(gè)有虛函數(shù)的類都建立一個(gè)虛函數(shù)表(其大小不計(jì)算在類中),并為這個(gè)類安插一個(gè)指向虛函數(shù)表的指針,即每個(gè)有虛函數(shù)的類其大小至少為一個(gè)指針的大小4
class A{
public:
int a;
void Function();
};
class B{
public:
int a;
virtual void Function();
};
class C:public B{
public:
char b;
};
class D:public B{
public:
virtual void Function2();
};
class E{
public:
static void Function();
};
sizeof (A) = 4 (內(nèi)含一個(gè)int,普通函數(shù)不占大小)
sizeof (B) = 8 (一個(gè)int ,一個(gè)虛函數(shù)表指針)
sizeof (C) =12 (一個(gè)int ,一個(gè)虛函數(shù)表指針,一個(gè)char ,再加上數(shù)據(jù)對齊)
sizeof (D) = 8 (一個(gè)int ,一個(gè)虛函數(shù)表指針,多個(gè)虛函數(shù)是放在一個(gè)表里的,所以虛函數(shù)表指針只要一個(gè)就行了)
sizeof (E) = 1 (static 函數(shù)不占大小,空類大小為1)
參考:
http://hi.baidu.com/weiloujushi/blog/item/33f7f8b75d7a35f330add131.html
等會驗(yàn)證下
@wingfire
兄弟,能說清楚點(diǎn)嗎?有好的資料推薦下?