關於Assert和verify的區別

本來不想說的,這其實是一個很基礎的問題,但是這兩天調試產品的bug的時候,卻發現是assert使用不當的問題。當然問題代碼不是我寫的。 這個bug在debug版本裡是不出現的,但是在release版裡出現。原因就在於有一句很重要的函數調用被放在assert裡面了。assert的願意是檢查這個函數調用的傳回值。但是寫代碼的人卻忽視了assert的副總用,結果導致release版裡bug出現了。這個bug從重現到調試,花費了我3天時間。 此時正確合理的做法是使用verify、verify裡的運算式在

股市有風險,入市需謹慎

上周末股指期貨推出,這一直是市場上認為的大利好啊。 於是開盤,大盤高開在3300,券商股,期貨股全部漲停。。。 未料此後大盤一路向下,下跌100個點。形成了一根大陰線。可憐了那些早盤追高的散戶們,這一下又被套了。 再一次證明了某些利好會見光死,從而變成一個陰謀。這又讓某些人大賺一筆。 還是那句話,股市有風險,入市需謹慎。一般的早盤變數太多,急著進去反而不好。除非那些技術過人的。 而我,吃了幾次虧之後,也漸漸選擇在尾盤入場了。這樣有安全邊際。第二天一看大勢不妙,立刻就撤。 千萬別被套,尤其是滿倉被

如何利用doxygen產生pdf文檔

 自己工作中寫的一個文檔。希望能對有需要的人有所協助。                           How to generate pdf file                                 with  Doxygen                                                                                             Table of contents   

由auto_ptr的實現說起。

 原始碼為你揭示一切。c++世界很無奈的一點是,很多東西你必須得看原始碼才知曉其中的秘訣。因為技巧太多了。   template<class _Ty>    class auto_ptr;template<class _Ty>struct auto_ptr_ref{        // proxy reference for auto_ptr copying    explicit auto_ptr_ref(_Ty *_Right)        :

如何防止標頭檔被重複包含

在windows平台下,有一個很方便的宏: #pragma once指定當前檔案在構建時只被包含(或開啟)一次,這樣就可以減少構建的時間,因為加入#pragma once後,編譯器在開啟或讀取第一個#include 模組後,就不會再開啟或讀取隨後出現的相同#include 模組. 另外,還可以用條件編譯語句來實現:#ifndef "XX_H"#define "XX_H" <標頭檔定義本文>#endif 顯然後者的移植性更好一點。   

Effective STL: 考慮用已序vector代替關聯容器

 條款23:考慮用已序vector代替關聯容器當需要一個提供快速尋找的資料結構時,很多STL程式員立刻會想到標準關聯容器:set、multiset、map和multimap。直到現在這很好,但不是永遠都好。如果尋找速度真得很重要,的確也值得考慮使用非標準的hash容器。如果使用了合適的hash函數,則可以認為hash容器提供了常數時間的尋找。(如果選擇了不好的hash函數或表的太小,hash表的尋找效能可能明顯下降,但在實際中這相對少見。)對於多數應用,被認為是常數時間尋找的hash容器要好於保

Effective STL- 熟悉非標準的散列容器(hash 容器)

 條款25:熟悉非標準散列容器STL程式員一般用不了多久就開始驚訝,“vector、list、map,很好,但是散列(hash)表在哪裡"?唉,在標準C++庫裡沒有任何散列表。

輸入一段文字(英文,帶若干種標點符號),計算單詞個數

這是一個很常見的筆試題目。給出我的解法: 演算法思路: 該演算法需要一個bool值,用來防止word被重複計算,flag初始值為假。遍曆該字串,如果字元為字母或數字(組成單詞的一部分),如果flag為假,則結果加1,並將flag變成真。如果字串為分隔字元,則把flag設為假。//判斷是否為分隔字元 bool IsSeperator(char c){   switch(c)   {   case ' ':       return true;       break;   case ',':  

如何使用STL PriorityQueue 優先隊列

相信大家對優先隊列不陌生。STL提供的PriorityQueue屬於容器適配器,底層預設用vector容器來實現。實現原理是在用vector裡構造一個Heap(堆),堆一般是用數組來儲存的。下面是一個使用有限隊列的例子,用來實現一個錯誤關聯器,總是把優先順序高的錯誤放在最前面。#include <string>#include <queue>#include <ostream>#include <stdexcept>// this class

__declspec(dllexport) and __declspec(dllimport)

What Exporting ReallyMeans (dll匯出的本質)The only truly interesting thing I introduced in the previous section was the __declspec(dllexport) modifier. When Microsoft's C/C++compiler sees this modifier before a variable, function prototype, or C++

VC裡如何列印word,excel,文字檔

     因工作上的原因,搜集了一些這方面的資料。深感搜集到這些資料的不易,因此拿出來和大家分享,希望能幫到大家一點點。     1. Vc列印Excel:         關於VC如何開啟一個excel,這方面的資料很多了,一般用的是OLE Avtive Control/假設當你開啟了一個excel檔案,並獲得了它的workbook的handle,相應的介面為:        COleVariant covTrue((short)true);       COleVariant

Effective STL- 需要一個一個字元輸入時考慮使用istreambuf_iterator

條款29:需要一個一個字元輸入時考慮使用istreambuf_iterator假設我們要把一個文字檔拷貝到一個字串對象中。似乎可以用一種很有道理的方法完成:ifstream inputFile("interestingData.txt");string fileData((istream_iterator<char>(inputFile)), // 把inputFile讀入 istream_iterator<char>()); //

使用vector::reserve來避免不必要的重新分配

關於STL容器,最令人稱讚的特性之一就是是只要不超過它們的最大大小,它們就可以自動成長到足以容納你放進去的資料。(要知道這個最大值,只要調用名叫max_size的成員函數。)對於vector和string,如果需要更多空間,就以類似realloc的思想來增長大小。這個類似於realloc的操作有四個部分:分配新的記憶體塊,它有容器目前容量的倍數。在大部分實現中,vector和string的容量每次以2為因數增長。也就是說,當容器必須擴充時,它們的容量每次翻倍。把所有元素從容器的舊記憶體拷貝到它的

如何將整數轉換為相應的字串

手寫的,沒有經過最佳化。將整數轉換為相應的字串。注意INT64的最大值,以免溢出。 char* itoa_my(INT64 value, char *buffer, size_t size)   {     assert(buffer != NULL);     assert(size > 1);      size_t  Len = 0;  INT64  tempvalue = value;  if (value < 0)     tempvalue = -value;//

VC++利用Automation操作word, excel

 關於VC操作word和EXCEL的,其中有網上抄的資料,也有自己的理解和體會。1. 一般來說,VC操作word和EXCEL比較直接的方式是利用automation. 翻譯成中文就是自動化。你要做的第一件事情就是為你的工程添加操作word和EXCEL需要的標頭檔。方法如下:    對於VC6.0來說,開啟class wizard, 然後選中automation,彈出以下介面:     點擊 "Add Class"按鈕,會出現一個下拉式功能表,只有2項,然後選擇"from a type lib",

反向迭代器:vector為什麼要有cbegin和cend

有時候我們要寫一些從數組的後面往前遍曆的程式,但使用的卻是正向迭代器。比如:typedef vector<int>::iterator iter; iter last=--a.end(); for (iter i=last-1;i>=a.begin();i--) {  for (iter j=last;j>=i+1;j--)  {   if ( *i < *j

如何對VC的dll進行profile

 如何profile一個dll呢?有以下步驟。 1.) Delete the export (<lib>.exp) and lib file (<lib>.lib) for the library you want to check 2.) Tick in the settings dialog on the tab-page the checkbox "Enable profiling"  3.) Tick on the same tab-page the

effective STL – 小心string實現的多樣性

  Bjarne Stroustrup曾經用奇特的標題寫一篇文章,《Sixteen Ways to Stack a

轉的一篇不錯的文章。

   老手,總會去到類似瓶頸的地方,每天上班下班,泡網泡論壇,渾渾噩噩。想再有寸進,總要下一些決心,今晚記下來以自律:   1.安靜的讀書     雖然書中的資訊比網路滯後,中文版的翻譯更再慢上一截。但書本的深度總結,比零零散散的網路資訊要深刻、完整而有條理得多。     還是那句,看書最好中文(翻譯太爛的除外)。     還是那那句,看書最好晚上,工作時間偷的或者零碎時間擠的,不適合。     架構師書單仍在繼續。     2.網媒只看深度文章     比如IBM

effective STL – 瞭解相等和等價的區別

  STL有許多比較對象是否有同樣的值的情況。比如,當你用find來定位區間中第一個有特定值的對象的位置,find必須可以比較兩個對象,看看一個的值是否與另一個相等。(operator==)。同樣,當你嘗試向set中插入一個新元素時,set::insert必須可以判斷那個元素的值是否已經在set中了。find演算法和set的insert成員函數是很多必須判斷兩個值是否相同的函數的代表。但它們以不同的方式完成,find對“相同”的定義是相等,基於operator==。set::insert對“相同

總頁數: 61357 1 .... 13343 13344 13345 13346 13347 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.