CWYAlpha

Just another WordPress.com site

Archive for 十月 2012

Thought this was cool: [进版]zz终于拿微信约着人出来开房啦!!

leave a comment »

发信人: getup (getup), 信区: Joke
标 题: [进版]zz终于拿微信约着人出来开房啦!!
发信站: 水木社区 (Wed Oct 31 15:49:57 2012), 站内

大家都知道微信、陌陌是什么工具,一直想约都没实现…………

功夫不负有心人,终于约到了!而且不止一个!

我用了一个女人的照片做头像,然后100多个人加我;骗了一个男的去宾馆开好房间等我,然后把房号给了另一男的,让他俩相见…………

过了一会,两个男的见面后,同时发短信过来骂我,说要整死我;回复他俩说:人家想要玩3P嘛,你俩脱光了等我哈…………一会就到

这两人的希望之火又熊熊燃起…………

过了半个小时后,第三个男的又进了房间…………

zz from douban

※ 修改:·ahb 于 Oct 31 17:27:15 2012 修改本文·[FROM: 180.210.239.*]
※ 来源:·水木社区 http://newsmth.net·%5BFROM: 218.240.53.*]

from 水木社区 Joke/笑话连篇 保留区: http://www.newsmth.net/bbscon.php?bid=63&id=3056152

Advertisements

Written by cwyalpha

十月 31, 2012 at 2:16 下午

发表在 Uncategorized

Thought this was cool: The Web Is A Mess

leave a comment »

You aren’t imagining it: The web is a mess》这篇文章提出了一些比较犀利的观点:

Web已经乱死了。

  • 人们在本世纪初,网上写的东西还是给人看的。都是浓缩精华
  • Google出现之后,人们写东西就不是给人看的了,而是给Google看的。为了各种关键字超高命中率,而不惜篇幅急剧膨胀灌水
  • 普通的个体再也不可能每天认真读完例如TechCrunch, LifeHacker这样网站的 每 一 篇 报道。

我觉得,同理,现在blog圈子基本已经死了。不是外力杀死的,而死blog太讨好搜索引擎自杀的。Blog还没有 长微博 这种怪胎混得好。这是一种莫大的讽刺。

我突然想到一个指标用来判断网站好坏,阅读量。单位:人天。

一个标准人一天的阅读量是固定的。假设阅读效率为s。一个人每天花t时间上网,那么整天阅读量 R 就是:

R = s x t

如果一个网站每天更新的内容超过了 1人天,那么这个网站就是垃圾站。

一个网站的好坏,就在于是否用最小的篇幅,做到了最大可能的报道覆盖和最大量的信息传递。

覆盖面这个不太好判断,最大量的信息传递这个倒是有办法,就是语义比较相似网站的雷同报道。

搜索引擎一诞生,就是扮演者图书馆管理员的角色,在最短时间内找到最大量的最大匹配结果。这个做法是信息匮乏,和分布极端不均时代必要的生存手段;

但是现在不同了,现在是信息过载时代,单体的信息是非常容易获取,廉价和负价值的,集中的信息才有正价值。如果能够为普通人做到一个信息输入输出平衡的搜索引擎,才是最具含金量的搜索引擎。

过去的搜索引擎是空间上的军备竞赛,谁黑谁大谁粗,谁就牛逼;现在则到了一个转折点,谁能够更好的为用户安排更加有意义的时间,谁就是救世主。

目前这个领域唯一的玩家,只有Google。Google太掌握这个行星上每一个人每天的行为和习惯了。(在北美用过Google Now都会为这个玩意的AI震惊)。Google有能力,有足够原始数据积累,唯一缺乏的就是这样一个具有vision的目标和执行。

via

from est's blog: http://blog.est.im/post/34673796115

Written by cwyalpha

十月 31, 2012 at 5:53 上午

发表在 Uncategorized

Thought this was cool: C/C++语言实现动态数组

leave a comment »

C数组的小问题
     这里说的动态数组是可以根据需要动态增长占用内存的数组,比如程序初始分配了100个元素,可是运行了一段时间后区区100个空间不能满足了,现在需要400个,怎么办呢;那肯定需要再额外分配300个。
     C语言有realloc()函数来解决空间扩充的问题,但是不要忘了realloc可能会迁移内存,很多时候数组中的元素会被其它函数/模块引用,如果地址发生了变化,结果将是灾难性的。
     那么STL的vector呢?它也有相同的问题。
     一次分配足够的空间是可以解决这个问题,很明显这会造成内存的浪费,这个做法不算明智。
     不使用数组呢?使用list能解决一部分问题,但是list不能支持随机访问啊,鉴于效率上的硬伤,显然不能随便用list替换数组。
     怎么解决这个问题呢?动态数组!在HPServer 的Demutex Table就用到了动态数组,事实证明效果不错。
动态数组的特征
动态数组是一个很简单易用的数据结构,但是简单不代表优点小,它的特征如下:
1 根据需要动态批量增长内存;
2 一经分配,元素地址不会再次变化;
3 实现简单,效率高,事实上它和普通数组相比基本没有效率损失;
4 最大个数固定;
其实最重要的就是特征2了,不然直接使用realloc多方便呢,当然动态数组的实现也很方便,下面就会详细说说。
特征4实际上是个限制,但是相信我,你的程序不可能达到这个最大值。
动态数组的实现
如上面所说的,动态数组实现起来很简单,以下都假设数组元素类型是T,首先需要一个辅助数据结构。
[cpp] view plaincopyprint?
struct ARRAY_ELE_S  
{  
    T item_array[1024];  
};  
ARRAY_ELE_S *pArray[2000];  
int iSize;   
变量pArray是一个ARRAY_ELE_S类型的指针数组,这个也就是你的动态数组了;iSize记录了当前数组的大小。
上面的代码表明:
1 数组每次动态增长1024个元素;
2 数组的最大元素个数可以到:2000*1024个,如果这个还不够,你可以把这个值改的更大点。
先来看看内存占用,pArray本身占用2000*4,大约是8K的内存,基本可以忽略了。
如果一次分配一个2000*1024的数组array[2000*1024],那么一次就要分配的内存是:2*sizeof(T) M,空间浪费严重。
再来看看效率,下面就从数组最主要的操作——随机访问来看看它的效率如何;接下来再看看它是如何根据需要动态增长的。
随机访问
访问指定的索引位置上的数组元素,这个需要两步计算,首先定位到元素在哪个子数组上,然后再定位到子数组的元素上;其实很简单。
[cpp] view plaincopyprint?
T *get(int idx)  
{  
    // 确保索引有效   
    if((idx>=0) && (idx
    {  
        int idx_maj = idx/1024; // 主索引   
        int idx_mor = idx – (idx_maj); // 次索引   
        return (&(pArray[idx_maj]->item_array[idx_mor]));  
    }  
    return NULL;  
}  
item_array[idx_mor])); } return NULL; }
动态增长
如果当前空间不够,需要动态增长数组,不然怎么叫动态呢,基本思想就是如果需要的size超过当前的数组大小,就需要增长数组,直到能够容纳size个元素,代码如下所示。
[cpp] view plaincopyprint?
int reclac(int size)  
{  
    if(size >= 1024*2048)     return -1; // 太大了   
    while(iSize <= size)  
    {  
        // 分配内存,并初始化为0   
        int idx = iSize/1024;  
        pArray[idx] = (ARRAY_ELE_S*)calloc(1, sizeof(ARRAY_ELE_S));  
        if(pArray[idx] == NULL)  
        {  
            return (-1);  
        }  
        iSize += 1024;  
    }  
    return 0;  
}  
转自:www.software8.co/wzjs/cpp/  转载请注明
动态数组就这么多零碎了,怎么样,实现起来够简单吧。

段正淳 2012-10-30 14:12 发表评论


from C++博客_Kevin Lynx: http://www.cppblog.com/newcnzz/archive/2012/10/30/194088.html

Written by cwyalpha

十月 31, 2012 at 3:09 上午

发表在 Uncategorized

Thought this was cool: 上手 Windows 8 繁體中文版 的10+1個心得與技巧教學

leave a comment »


windows 8-00

一開始使用Windows 8時,我確實卡關了大概5分鐘,因為對於如上圖那樣,在這次Windows 8中新加入的「開始」畫面,以及擺放在「開始」畫面上的App,他們與傳統Windows工作桌面之間如何區隔?分工?我產生了很大的困擾。

操作上其實沒有什麼大問題,雖然Windows 8介面有著全新的設計,但邏輯其實很單純,只要抓住一兩個重點,就能適用在所有的新介面上,讓你不會迷路。這部份也是我這篇文章中會說明的重點之一。

而關於對「開始畫面」、「傳統桌面」使用定位的掌握,才是決定是否能真正把Windows 8玩通的關鍵,甚至像我現在一樣認為Windows 8比過去的微軟視窗作業系統都還要更優秀。

 

 

下面,我就來聊聊一些自己的心得,關於如何在Windows 8中善用兩種桌面規劃工作的想法,以及一些學會後立刻就能玩通Windows 8的操作技巧

並且,我自己使用Windows 8的作業環境是:單純的桌上型電腦、沒有觸控螢幕、沒有平板、只有使用滑鼠,但即使是這樣的環境,Windows 8其實仍然是一個值得關注且有其好用之處的作業系統。

 

 

一、Windows 8可以安裝兩種軟體:App、傳統軟體

可以把Windows 8當做一種雙系統來看待:

  • 一個是執行App用的系統,也就是「開始」畫面。
  • 一個是執行傳統視窗軟體用的系統,也就是仍然存在的「傳統桌面」。

我自己現在即使在辦公桌工作時,除了在桌機上執行傳統桌面軟體,也會把iPad平板與Android手機擺在旁邊,有些資訊透過App解決比較快。而Windows 8正是把這樣的工作概念合而為一。

 

在Windows 8的「開始畫面」中,主要是讓你安裝與執行App,也就是未來可以在Windows 8手機、平板、桌機上一體通用的App。

windows 8-01 002

 

而Windows 8的「傳統桌面」就是我們習慣的Windows工作桌面,可以安裝執行幾乎所有的傳統視窗軟體。

於是在Windows 8中,我們擁有兩種不同的工作桌,可以分別安裝與執行「行動App」和「視窗軟體」。

所以上手Windows 8的第一個步驟,就是認知到「開始畫面」與」「傳統桌面」是兩個不同的工作桌,在「開始畫面」中主要是執行App,在「傳統桌面」上則主要是執行你已經很熟悉的那些視窗軟體。

windows 8-02

 

 

二、開始畫面中的Windows 8 App

那麼,被Windows 8獨立做成一個「開始」畫面的App有什麼好處呢?

這裡有一個很值得關注的重點,那就是這裡的App其實就是未來Windows 8在手機、平板上的App。也就是說,Windows 8是一個可以直接在桌面電腦上重現、無縫整合你的行動裝置App的系統

在行動App上那些推送即時資訊的新聞頻道、有趣的休閒遊戲、閱讀與購買的電子書,或是各種影音娛樂節目,現在你可以直接在Windows 8的桌面電腦上也享受到,即使你沒有Windows 8手機。

windows 8-03

 

這些放在「開始」畫面的Windows 8 App,可以到同樣在開始畫面中的「Windows 8市集」下載。

這就是Windows的App Store,而Windows 8讓所有用戶,即使是桌機用戶,也可以享受現在與未來會推出的那些有趣與實用的行動App。

windows 8-04

 

例如,目前已經在Windows 8市集推出的「蘋果日報」App,整合了蘋果日報的即時新聞、動新聞等主要頻道,讓你透過App更快速、更舒適的閱讀每日新聞。

windows 8-05

 

 

三、聯絡人、行事曆、郵件、圖片、訊息中心雲端帳戶整合

當然,「開始畫面」也不僅僅只是讓Windows 8可以玩玩行動App這麼簡單。

透過「開始畫面」的資訊動態磚設計,我覺得可以當做桌機用戶一個很好的工作啟動與休閒的入口。

 

尤其是內建在「開始畫面」的聯絡人、行事曆、郵件、圖片、訊息中心等App,讓這個入口可以快速顯示與通知用戶最重要的消息,並且,可以整合你的微軟、Google、Facebook等帳戶

這意思是,你可以透過「開始畫面」的聯絡人App同時查詢Google與Facebook聯絡人,透過行事曆App同時查看Google日曆與Outlook行事曆,透過郵件App同時閱讀與回覆來自Gmail和Hotmail的郵件。

而且這些資訊可以透過動態磚即時顯示。

Windows 8開始畫面這些內建App的雲端整合非常實用,讓開始畫面成為一個有效的資訊統合中心。

windows 8-06

 

 

四、隨時呼叫的右方設定列

Windows 8的介面雖然大改變,但我的心得是改得更加好用且統一。

例如現在你要在Windows 8裡「進行任何設定」,全部都是一個方法,就是把滑鼠移動到桌面右上或右下角,呼叫出功能列,點擊「設定」即可。

windows 8-07

 

如果你是在某個App中呼叫出這個設定列,就會進行這個App的設定。

例如在行事曆App中,可以添加多個雲端帳戶,把你所有的行事曆整合在一起。

windows 8-08

 

如果是在開始畫面或傳統桌面上呼叫出右方的設定列,則可以進行整個系統的相關設定。

例如在傳統桌面上呼叫出設定列時,就可以開啟控制台、修改個人化介面。

windows 8-09-01

 

還有大家關心的關機按鈕,或是切換輸入法,全部都在這個右方設定列。反正任何時候你覺得需要設定什麼,一定都是在右方設定列完成

但其實在Windows 8中,你可以直接按電腦主機上的實體關機鍵來關機。

windows 8-09

 

 

五、滑鼠右鍵的功用

滑鼠右鍵也是一個很重要的按鈕。在傳統Windows桌面上,滑鼠右鍵本來就可以呼叫出更多功能的選單,這一點在Windows 8中仍然沒變。

那麼,如果是在「開始畫面」中按下滑鼠右鍵呢?這時候,你一樣可以呼叫出原本App畫面裡不存在、但很有用的上下功能選單列

例如在「開始畫面」本身空白處按滑鼠右鍵,下方功能列就會出現「所有應用程式」,這是什麼?這就是Windows XP、Windows 7裡的程式集了。

windows 8-10

 

如果是在App中按下滑鼠右鍵,就可以呼叫出這個App的額外功能。

例如在Evernote的Windows 8 App裡按下滑鼠右鍵,就可以改成以記事本、標籤瀏覽的方式,或是新增記事等等。

記住,前面一開始就說,在Windows 8裡行動App和視窗軟體是兩個不同的軟體。所以Evernote的Windows 8 App只是App,你想獲得完整功能,就要另外安裝真正的Evernote桌面軟體。

windows 8-11

 

 

六、正式的工作作業回到傳統桌面

前面的敘述可以看到,在Windows 8開始畫面中的App其實就是行動裝置上的App,整合在桌機系統後,它帶來的好處是可以作為即時、簡便的資訊中心,也可以負責一些適合App來解決的事情。

但是,真正重度的工作需求,仍然是交給傳統桌面來解決,在「傳統桌面」中我們可以使用那些功能最強大的軟體來執行複雜的作業,並且方便的在不同的複雜軟體之間切換使用。

 

Windows 8雙桌面的設計,其實在工作上可以發揮區隔的效果。

以App為主的開始畫面中,我可以收發社群訊息、處理郵件、查看行事曆、搜尋網頁,看看新聞、玩玩遊戲,或者打開即時通聊天。並且這些行動App介面更簡單、更有互動性。

windows 8-00

 

而所有我工作需要的傳統視窗軟體,全部都可以在Windows 8的傳統桌面上執行。一旦我需要開始工作,立刻切換回傳統桌面,開始寫部落格文章、開始編輯排版、開始修圖繪圖,執行複雜的作業。

你也可以把需要的視窗軟體,全部釘選在傳統桌面的下方工具列上,方便取用。

習慣這樣子的區隔後(而且很容易就會習慣),反而覺得有這樣明確的區分,讓桌面與工作管理上更加輕鬆了。

windows 8-12

 

 

七、App在傳統工作桌面上的輔助

但有些App其實也有工作效果,那麼他們可不可以在傳統桌面工作時,從開始畫面呼叫到傳統桌面一起結合使用呢?

Windows 8有一個SnapView(子母畫面)的功能,可以把App常駐在側邊欄使用,然後主畫面中繼續進行傳統視窗軟體的正常工作。但SnapView必須要在1366 x 768解析度以上的螢幕才能使用喔!

方法很簡單,其中之一是,把你正在執行的App(畫面中是Everntoe App),拖曳到左方或右方側邊欄即可。

在Windows 8的App中,你可以用滑鼠按著介面最上方,按住不放,開始拖曳,如果拖曳到最下方就是關閉App,而拖曳到左方或右方就是常駐該App在側邊欄。

windows 8-13

 

另外一個方法,則是把滑鼠移動到畫面左上方然後往下滑動,可以呼叫出「最近使用的App清單」,在某個App上點擊右鍵,就能直接指定該App靠齊側邊欄常駐使用。

windows 8-15

 

這可以讓App傳統視窗軟體搭配出很多應用的變化。

例如把Evernote Windows 8 App常駐在側邊欄,隨時可以查看與修改筆記內的待辦清單,然後右方正式的傳統桌面繼續執行工作。

或者把新聞類App擺放在側邊欄,右方傳統桌面則可以播放電影。

還可以把翻譯App擺放在側邊欄,右方傳統桌面則打開瀏覽器查看英文網頁。

windows 8-14 

 

 

八、常用資料夾與軟體釘選到開始畫面

如果說Windows 8的「開始畫面」可以當做一個入口,那麼在我們完成訊息處理和休閒娛樂後,想從開始畫面快速進入「傳統桌面」工作,可不可以有什麼好設定呢?

例如,我會想把Google Drive、Dropbox這些儲存工作文件的資料夾,釘選到開始畫面中。

方法很簡單,在傳統桌面的檔案總管裡,找到你需要的資料夾,點擊右鍵,選擇【釘選到開始畫面】。

windows 8-16

 

這樣一來,在開始畫面中,就出現可以快速進入、切換到傳統桌面工作的資料夾捷徑囉!

透過這個方法,你也可以把一些傳統視窗軟體的捷徑釘選到開始畫面,從開始畫面切換到傳統工作桌面的過程就更加流暢了。

windows 8-17

 

 

九、活用整合搜尋

關於使用Windows 8時的一個介面使用問題是,怎麼快速找到安裝的應用程式,不管那是App還是視窗軟體?

其實很簡單,我推薦的方法是利用Windows 8裡很好用的「搜尋」功能。只要把滑鼠移動到畫面右上方,就會出現搜尋功能列。或者鍵盤直接按〔Win〕+〔F〕,就能立刻啟動搜尋。

windows 8-18

 

Windows 8的搜尋可以說什麼都搜尋得到。

例如你可以直接搜尋關鍵字,找出你需要的所有已經安裝的應用程式。

windows 8-19

 

或者你可以從搜尋功能去進行App的延伸搜尋,例如搜尋聯絡人App中的聯絡人名單,搜尋Evernote App中的筆記等等。

好好利用這個搜尋功能,你可以在Windows 8的軟體工作切換之間更加順暢無礙。

windows 8-21

 

 

十、快捷鍵的關鍵:〔Win〕按鈕

Windows 8裡有很多值得好好利用的快捷鍵,並且他們不難記。

  • 〔Win〕(就是鍵盤下方的視窗按鈕):在開始畫面、傳統桌面之間切換。
  • 〔Win〕+F:啟動前面提到的搜尋功能。
  • 〔Win〕+空白鍵:切換輸入法。
  • 〔Win〕+〔Tab〕:在已經開啟的App之間切換。
  • 〔Win〕+D:跳回傳統工作桌面。

我覺得大概記住這幾個快捷鍵就夠了。

 

 

加一、值得一玩的免費新遊戲

在我自己摸索的過程中,大概經過前面10個觀念與技巧後,大致上已經可以很好的掌握Windows 8的變革,並且讓開始畫面與傳統桌面更好的搭配。

而在這個附加的補充中,我要推薦大家的是,可以去試試看Windows 8市集中的免費遊戲。

windows 8-22

 

尤其是新版的「踩地雷」,是的,下面這張圖就是Windows知名遊戲踩地雷的最新版畫面「之一」,你可以玩到非常多不同的變化與樂趣。

最後,希望這篇Windows 8的上手心得,可以對大家有幫助,也歡迎大家一起來討論與分享心得或問題。

windows 8-23

喜歡這篇文章嗎?歡迎追蹤我的FacebookTwitterGoogle+,獲得更多有趣、實用的數位科技消息,更歡迎直接透過社群聯繫我。


from 電腦玩物: http://playpcesor.blogspot.com/2012/10/windows-8-101.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+playpc+%28playpc%29

Written by cwyalpha

十月 30, 2012 at 12:52 下午

发表在 Uncategorized

Thought this was cool: OpenGG.Clean.Player 在Chrome Web Store 上架

leave a comment »

感谢Alyzq 的帮助, OpenGG.Clean.Player 得以在Chrome Web Store 上架.
安装地址:
OpenGG.Clean.Player for Chrome

本站文章除注明转载外,均为本站原创编译
转载请注明以下信息
文章转载自:鲁夫的爱 [ http://opengg.me/ ]
本文标题:OpenGG.Clean.Player 在Chrome Web Store 上架
本文地址:http://opengg.me/875/openggcleanplayer-chrome-web-store/
您可能也喜欢:


player.opengg.me 更换ip


[已修复]player.opengg.me 服务器故障


OpenGG.Clean.Player 增加 宽屏/窄屏 切换功能


OpenGG.Clean.Player 服务器迁移完毕


OpenGG.Clean.Player 的项目进展

无觅

from 鲁夫的爱: http://opengg.me/875/openggcleanplayer-chrome-web-store/

Written by cwyalpha

十月 30, 2012 at 12:52 下午

发表在 Uncategorized

Thought this was cool: C/C++关键字static,const,inline,define,typedef

leave a comment »

 static

1) 产生背景

引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现?

最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。

       类的静态成员也是这个道理。

解决方案:因此C++ 中引入了static,用它来修饰变量,它能够指示编译

器将此变量在程序的静态存储区分配空间保存,这样即实现了目的,又使得此变量的存取范围不变。

2) 具体作用

Static作用分析总结:static总是使得变量或对象的存储形式变成静态存储,连接方式变成内部连接,对于局部变量(已经是内部连接了),它仅改变其存储方式;对于全局变量(已经是静态存储了),它仅改变其连接类型。(1 连接方式:成为内部连接;2 存储形式:存放在静态全局存储区)

 const

1) 产生背景

a) C++有一个类型严格的编译系统,这使得C++程序的错误在编译阶段即可发现许多,从而使得出错率大为减少,因此,也成为了C++与C相比,有着突出优点的一个方面。

b) C中很常见的预处理指令 #define VariableName VariableValue 可以很方便地进行值替代,这种值替代至少在三个方面优点突出:

一是避免了意义模糊的数字出现,使得程序语义流畅清晰,如下例:

  #define USER_NUM_MAX 107 这样就避免了直接使用107带来的困惑。

二是可以很方便地进行参数的调整与修改,如上例,当人数由107变为201时,改动此处即可;

三是提高了程序的执行效率,由于使用了预编译器进行值替代,并不需要为这些常量分配存储空间,所以执行的效率较高。

然而,预处理语句虽然有以上的许多优点,但它有个比较致命的缺点,即,预处理语
句仅仅只是简单值替代,缺乏类型的检测机制。这样预处理语句就不能享受C++严
格类型检查的好处,从而可能成为引发一系列错误的隐患。

Const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时

继承它的优点。

现在它的形式变成了:

Const DataType VariableName = VariableValue ;

2) 具体作用

1.const 用于指针的两种情况分析:

     int const *A;  //A可变,*A不可变

     int *const A;  //A不可变,*A可变

 分析:const 是一个左结合的类型修饰符,它与其左侧的类型修饰符和为一个

类型修饰符,所以,int const 限定 *A,不限定Aint *const 限定A,不限定*A

2.const 限定函数的传递值参数:

     void Fun(const int Var);

     分析:上述写法限定参数在函数体中不可被改变。

3.const 限定函数的值型返回值:

const int Fun1();

const MyClass Fun2();

     分析:上述写法限定函数的返回值不可被更新,当函数返回内部的类型时(如Fun1),已经是一个数值,当然不可被赋值更新,所以,此时const无意义,最好去掉,以免困惑。当函数返回自定义的类型时(如Fun2),这个类型仍然包含可以被赋值的变量成员,所以,此时有意义。

4. 传递与返回地址: 此种情况最为常见,由地址变量的特点可知,适当使用const,意义昭然。

5. const 限定类的成员函数:

class ClassName {

 public:

  int Fun() const;

 …..

}

  注意:采用此种const 后置的形式是一种规定,亦为了不引起混淆。在此函数的声明中和定义中均要使用const,因为const已经成为类型信息的一部分。

获得能力:可以操作常量对象。

失去能力:不能修改类的数据成员,不能在函数中调用其他不是const的函数。

 inline

1) 产生背景

inline这个关键字的引入原因和const十分相似,inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中

表达式形式的宏定义。

表达式形式的宏定义一例:

   #define ExpressionName(Var1,Var2) (Var1+Var2)*(Var1-Var2)

       这种表达式形式宏形式与作用跟函数类似,但它使用预编译器,没有堆栈,使用上比函数高效。但它只是预编译器上符号表的简单替换,不能进行参数有效性检测及使用C++类的成员访问控制。

inline 推出的目的,也正是为了取代这种表达式形式的宏定义,它消除了它的缺点,同时又很好地继承了它的优点。inline代码放入预编译器符号表中,高效;它是个真正的函数,调用时有严格的参数检测;它也可作为类的成员函数。

2) 具体作用

直接在class类定义中定义各函数成员,系统将他们作为内联函数处理; 成员函数是内联函数,意味着:每个对象都有该函数一份独立的拷贝。

在类外,如果使用关键字inline定义函数成员,则系统也会作为内联函数处理;

C关键字

#define 宏名 要替换的代码      

宏定义,保存在预编译器的符号表中,执行高效;作为一种简单的符号替换,不进行其中参数有效性的检测

typedef 已有类型 新类型

别名, 常用于创建平台无关类型, typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。

段正淳 2012-10-30 11:50 发表评论


from C++博客_Kevin Lynx: http://www.cppblog.com/newcnzz/archive/2012/10/30/194079.html

Written by cwyalpha

十月 30, 2012 at 5:06 上午

发表在 Uncategorized

Thought this was cool: 可悲的百度算法机制

leave a comment »

  最近似乎已经很少看到有关于SEO的相关文章了,这是不是印证了《SEO已死》这篇文章。可能,也许在中国,真正的SEO离死真的并不遥远了。

  背景

  最近有个朋友频频跟笔者抱怨,网站无法被百度正常收录,几个关键词的排名也是好几个月没有动过了。这位朋友是个专心做内容的家伙,因为时常被我灌输“内容为王”的理念,而他网站的相关行业客户对象一般都是年龄较大的互联网用户,在分享传播和外链上,几乎不能指望靠优秀的内容达成,所以在外链规模上十分有限。

  另外,由于曾经因为有意识的购买外链而被搜索引擎惩罚,他也并不太敢于使用链接工厂的那些服务,只是花钱做了十来个所谓百度权重高大7的友链。毕竟行业不是很主流,他觉得也差不多了,其他精力都放在内容上了。

  在这样“曲高和寡”  的作风下,有经验的朋友已经猜到了结局:那就百度收录极差,谷歌收录极好。但谷歌带来的流量实在太过坑爹,基本可以无视,甚至360搜索都比谷歌多。

  这位老兄憋了两个月,终于忍不住问我:是不是还是要多搞点外链啥的?我看他那副惨样,终于长叹一声:搞吧。

  回忆

  以上这些事儿,如果发生在两三年前,我的建议肯定是——“酌情并有序地增加外链,避免作弊嫌疑”,如果发生在四五年前,我的建议肯定是——“给我义无反顾地搞外链,外链为皇!”。可是这已经是2012年的事儿了。

  在这几年,对于那些平凡的网站来说,想得到百度的稳定排名真的不太容易。

  我接触的数十位上海本地站长的一致公认:百度近一两年在排名方面存在严重的欺软怕硬现象。也就是说,普通网站不管是在内在外进行的各种优化都不见得会正常影响排名,甚至仿佛是随机抽取的,你基本得不到任何规律可言。你试试这招也没用,试试那招也没用,或者最多顶个几天用。总结下来,难道真得像百度所说,只要琢磨好《百度站长指南》,并把内功做好就行了?

  在我遇到的企业级客户中,这种现象更加普遍。多个企业在没有进行任何黑帽优化的情况下,网站排名经常大幅波动,甚至持续性倒退。而在谷歌这里,却在收录方面得到了明显提升。而对于不少大型网站或者“重要站点”,即使啥都不干,排名与收录都很稳健,即使那网站做的一塌糊涂。

  看起来这似乎是好事儿。搜索引擎的游戏规则那么神鬼莫测,是不是说明百度的技术已经真正超过了谷歌,“更懂中文”,能够更多靠内容和其他综合因素来判定结果,毕竟不管怎么说,百度的搜索体验不说最好,但也并不差。

  现实

  但事实并非如此,百度看似高明的算法变化与不留情面的生杀予夺,只是一件很可笑的事情,因为一切都没有改变。

  让我们来2012年10月27日凌晨的一个例子,这是我观察了不少天的一个网站:

可悲的百度算法机制

  上图底部的那家网站是出现在百度搜索“平板电脑”这个关键词的首页自然排名中,排除竞价投放因素,它的自然排名居然仅次于中关村在线的开放接口、百度图片、百度百科,位于第四位。在27日下午再次核实,它依然排在前五,首页10个自然排名除了它全部出自中关村在线、Pconline、百度自有产品、泡泡网。如果这种事发生在类似“卢森堡移民”这一类的冷门领域倒还可以理解,但是在微软Surface、Ipad Mini、Nexus 7二代竞相登场的金秋十月尚能做到这些,这到底是哪一家平板厂商?

  讽刺的是,百度居然在搜索结果中该网站标题的下方增加了这么一句话:“百度提示您:该页面可能因黑客侵入而存在安全风险”

  点击该信息,显示结果其实就是有大量的电脑管家用户举报它为“欺诈”型网站。对该网站WHOIS用户信息和IP进行了追踪,发现该平板电脑销售网站的持有方是一家深圳的山寨厂。令人惊讶的是,他还不是一家卖数码产品的,而是卖生物制品的公司。根据同IP下反查出的16个网站显示,这家公司主营的产品基本都是女性减肥、美容类产品,例如左旋肉碱、木瓜汤之流。

  写到这里,懂行的圈内人都会会心的一笑。

  再探

  那我们来看看这个网站做的如何。

  这个网站做的中规中矩,算不上精致,但也并不难看。但仅就百度官方提供的“SEO建议”中涉及的那几项站内优化要求,我认为测试总分应不会超过70分,甚至堪堪及格。无论是JS位置、ALT信息还是DIV+CSS的要求,都并不是那么无懈可击。实际上,这顶多算是一个Landing Page型的销售页面,根本就没有代码层面SEO的基本思想在里面。

  这让文首提到的那位老兄情何以堪,让那些手写sitemap的站长们情何以堪。

  那么这家网站是如何做到这些的?而百度又是为何能让这么一个被频频举报为欺诈且没有付过一分钱给自己(这点清廉我们还是相信的)的山寨平板销售网站骑在联想、华为、京东、当当头上?这如果不是策略,难道是技术和算法上的原因?

  可悲

  我对该网站服务器上的10多个兄弟网站进行了调查,其中居然只有一个PR=0,其他网站PR都有2-3,要知道,这些可都是单页型的销售类网站,甚至不能叫网站,只是一个页面。

  谷歌的PR说明不了太大问题,我们看看它的百度反链。

  我的老天诶,11万多的百度反链。当然,由于雅虎退出搜索阵线,我没有找到特别好用的外链和锚文本检索工具,这11万中一定也包括很多无效的链接或者文本链接,同时,域名中的英文关键词与品牌标题一致也会增加反链统计数。然而毫无疑问,我们已经找到了答案。收录24,反链11万。

  我记得上一个给我类似感觉的网站,叫做“麦包包”,高达65万的反链,连淘宝都甘拜下风。

  仔细查看这些反链,我们发现了一位极为高明的SEO外链老手的痕迹,而且几乎都是新闻站的软文。由于软文本身存在被转载的可能,大量增加了domain在文本层面上的曝光几率。这也侧面证明,非锚文本链接对企业主站的意义,也一定程度上证实这样一句话:“只有几个人表扬你,有人会不服;但是成千上万人表扬你,不服也得服。”

  百度无疑是服了,这就是百度的算法吗?在这样热门的关键词排名中,在网站被举报欺诈的情况下依然给出这么显赫的排名?这让那些因为相信百度而购买了接近2000元却用着MTK6573芯片的垃圾无售后山寨平板的普通用户作如何想法?

  真是可悲,和五年前一样,其实什么都没有变。大道至简,唯“多”不破。

  来源:投稿,作者:Shepherd,原文链接

评论《可悲的百度算法机制》的内容…

相关文章:

微博:新浪微博腾讯微博 – 月光博客媒体交流QQ群:262102629
月光博客投稿信箱:williamlong.info(at)gmail.com
Created by William Long http://www.williamlong.info
from 月光博客: http://www.williamlong.info/archives/3265.html

Written by cwyalpha

十月 30, 2012 at 5:06 上午

发表在 Uncategorized