Time of Update: 2018-12-03
轉載自:http://www.byvoid.com/blog/fast-readfile/ 在競賽中,遇到大資料時,往往讀檔案成了程式運行速度的瓶頸,需要更快的讀取方式。相信幾乎所有的C++學習者都在cin機器緩慢的速度上栽過跟頭,於是從此以後發誓不用cin讀資料。還有人說Pascal的read語句的速度是C/C++中scanf比不上的,C++選手只能干著急。難道C++真的低Pascal一等嗎?答案是不言而喻的。一個進階的方法是把資料一下子讀進來,然後再轉化字串,這種方法傳說中很不錯,但具體
Time of Update: 2018-12-03
使用C運行庫中的函數,因此具有平台移植性包含標頭檔:time.h#include <time.h>函數介紹:1. clock()功能:返回處理器調用某個進程或函數所花費的時間函數原型:clock_t clock( void );傳回值:如果成功,返回 該進程從開始執行,到調用clock()時刻,CPU的滴答數(clock_t是一個長整形數)如果失敗,返回-1;注意:如果要將clock_t 換算成秒或者毫秒,需要除以CLOCKS_PER_SECCLK_TCK 或者CLK_TCK(6.0
Time of Update: 2018-12-03
C語言判斷檔案是否存在用函數access,標頭檔是io.h,原型: int access(const char *filename, int amode); amode參數為0時表示檢查檔案的存在性,如果檔案存在,返回0,不存在,返回-1。 這個函數還可以檢查其它檔案屬性: 06 檢查讀寫權限 04 檢查讀許可權 02 檢查寫入權限 01 檢查執行許可權 00 檢查檔案的存在性在UNIX和VC下實驗成功。好處是 fopen(.
Time of Update: 2018-12-03
函數名: rename 功 能: 重新命名檔案 用 法: int rename(char *oldname, char *newname); 程式例: #include <stdio.h> int main(void) { char oldname[80], newname[80]; /* prompt for file to rename and new name */ printf("File to rename: ");
Time of Update: 2018-12-03
1. 建立檔案 //create a new fileFILE* f = fopen ( file_name , "a");fclose(f); 具體參數用法,參見 http://baike.baidu.com/view/656681.htm 2. 讀入檔案一行 getline 操作:ifstream ifstr(file_name);string line;while(!ifstr.eof()){ getline(ifstr,line);} 3.
Time of Update: 2018-12-03
文章名字為單擊事件,實際上雙擊等事件的操作類似說明:(1) TreeView中的Nodes[] 本身是沒有單擊、雙擊事件的,但是TreeView本身這些事件都有;(2) TreeView中有一個屬性:SelectedNode,該屬性可以擷取或設定當前選中的節點;因此,結合點(1)和(2),就可以做出一個類似於TreeView中的子節點單擊事件執行個體代碼:(1) 為TreeView控制項添加"NodeMouseClick"事件;(2) 事件處理代碼如下:首先需要擷取被選中的節點:
Time of Update: 2018-12-03
為了探錄c++ 風格的fstream與 C 風格(例如fread 和 fwrite )兩種讀寫檔案的方法的效率,我特意做了兩個實驗。 我的機器是Windows XP, Visual Studio 2008 1. 測試寫檔案速度 程式設計思路: 將TEST_SIZE個字元用兩種方式寫入檔案,記錄兩種方式的耗時。 實驗代碼: void test_write(){const int TEST_SIZE = 10000000 ;const char* c_plus_write_file = "H:
Time of Update: 2018-12-03
轉自:http://www.cnblogs.com/madlas/articles/1364503.html#include <iostream>#include <list>#include <numeric>#include <algorithm>using namespace std;//建立一個list容器的執行個體LISTINTtypedef list<int>
Time of Update: 2018-12-03
在做Cracking Code interview裡的一道經典題目時:寫一個函數把C風格的字串(即以'\0' 結尾的字串,"abcd"的長度是5)反轉;我寫了一個對半分的reverse代碼,用了遞迴,感覺封裝得挺好:unsigned int getLength(char* str){unsigned int len = 0;while(str[len++]);return len;}void swap(char& a, char& b){char tmp = a; a =
Time of Update: 2018-12-03
#include <iostream>#include <cstdio>#include <cstring>using namespace std;/** *計算next,其中next[0]=-1,next[1]=0; *next[j+1] = k+1 如果p[j]= p[next[j]] = p[k],這裡k=next[j]k'+1或者0 如果p[j]!=p[next[j]]尋找k'=next[...next[k]...
Time of Update: 2018-12-03
C語言中位移位元運算符位移位元運算符http://www.fsec.cn/rrj/cpp/cjz22.htm 位移位元運算符是將資料看成位元,對其進行向左或向右移動若干位的運算。位移位元運算符分為左移和右移兩種,均為雙目運算子。第一運算對象是移位對象,第二個運算對象是所移的二進位位元。 位移位元運算符的運算對象、運算規則與結果、結合性如表2-16所示。 移位時,移出的位元全部丟棄,移出的空位補入的數與左移還是右移花接木有關。如果是左移,則規定補入的數全部是0;如果是右移,還與被移位的資料
Time of Update: 2018-12-03
在StdAfx.h中引入#pragma comment(lib,"ws2_32.lib")//擷取IP在CPP中添加實現函數代碼 CString strResult; WSADATA wsaData; char name[155]; char *ip; PHOSTENT hostinfo; if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) { if( gethostname (
Time of Update: 2018-12-03
seekToEndOfFile將一個檔案的內容附加到另一個檔案中。通過開啟另一個檔案用於寫入的檔案,然後定位到該檔案的結尾,最後將第一個檔案的內容寫入第二個檔案中來實現代碼如下:#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ @autoreleasepool { NSFileHandle *inFile, *outFile; NSData *
Time of Update: 2018-12-03
.net中默只能上傳小於4m的檔案,大於4M將無法顯示頁面.那麼如何設定來使imputfile能上傳更大的檔案呢,1,環境:window 2003 ,IIS6.0要首先要修改IIS6.0中的asp請求的最大位元組數,預設時為200K;方法:開啟位於 C:/Windows/System32/Inetsrv 中的 metabase.XML,並修改 AspMaxRequestEntityAllowed 為你需要的值(例如 "1073741824", 1GB);技術背景:在 IIS 6.0 中,
Time of Update: 2018-12-03
最近接觸了.Net項目,想用一下資料庫的持久層架構。也上網差了一些。所有就留下來了。獻給像我這樣的初學者。NHibernate NHibernate是一個面向.NET環境的針對關係型資料庫的對象持久化類庫。 NHibernate來源於非常優秀的基於Java的Hibernate關係型持久化工具。 NHibernate從資料庫底層來持久化你的.Net對象到關係型資料庫。NHibernate為你處理這些,你不用自己寫SQL去資料庫存取對象。你 的代碼僅僅和對象關聯,
Time of Update: 2018-12-03
舉例說明如何在C#中使用C/C++寫的DLL 如何在C#中使用C/C++寫的DLL。舉一個我做過的例子說明:建立VC工程DllDemo,建立的時候選擇MFC AppWizard(dll),選擇Regular Dll using shared MFC Dll或者MFC Extension Dll。現在可以寫一個函數代碼,在DllDemo.cpp檔案中添加這些代碼。也可以使用新的檔案添加代碼;extern “C“ __declspec(dllexport) int Add(int a,int b){
Time of Update: 2018-12-03
以下轉載自:http://fesir.itpub.net/post/4728/183624 http://www.cublog.cn/opera/showart.php?blogid=18478&id=107917在c++Template中很多地方都用到了typename與class這兩個關鍵字,而且好像可以替換,是不是這兩個關鍵字完全一樣呢?相信學習C++的人對class這個關鍵字都非常明白,class用於定義類,在模板引入c++後,最初定義模板的方法為:template<cla
Time of Update: 2018-12-03
你平時是怎麼讀取檔案的?使用流讀取。是的沒錯,C#給我們提供了非常強大的類庫(又一次吹捧了.NET一番),裡面封裝了幾乎所有我們可以想到的和我們沒有想到的類,流是讀取檔案的一般手段,那麼你真的會用它讀取檔案中的資料了嗎?真的能讀完全嗎? 通常我們讀取一個檔案使用如下的步驟: 1、聲明並使用File的OpenRead執行個體化一個檔案流對象,就像下面這樣 FileStream fs = File.OpenRead(filename); 或者 FileStream
Time of Update: 2018-12-03
Object Pascal的指標 一、類型指標的定義。 對於指向特定類型的指標,在C中是這樣定義的: int*ptr; char *ptr; 與之等價的Object Pascal是如何定義的呢? var ptr : ^Integer; ptr : ^char; 其實也就是符號的差別而已。 二、無類型指標的定義。
Time of Update: 2018-12-03
1. wprintfQ : sizeof(wchar_t) = ?A : 隨編譯器不同。(所以:在需要跨平台的時候盡量不用wchar_t) vc : sizeof(wchar_t) = 2;Q: 在vc中,為什麼直接使用wprintf(L"測試1234")會沒有結果A: 沒有設定好locale,這樣做setlocale(LC_ALL ,"chs");wprintf(L"%s",L"測試1234");或者(假設當前活動codepage為chs)char scp[16];int cp =