Time of Update: 2018-07-25
前面寫了個perl的解析器,資訊打算存入到XML檔案中, 事實證明這可能是個錯誤的決定。因為當時我的想法是,第一版,可以在本機直接運行,不需要使用者裝資料庫。現在來看,真是不如用Access資料庫。 但既然選定這個方面,還是做下去。再回頭,時間更是來不及。 因為在調研解析器時,沒有找到好的.net 或是其它好用的編譯器,現在來看,製作編譯器還得C。 這樣一來,寫入XML的工具,最好也用C++來實現為好。
Time of Update: 2018-07-25
C# 2.0 泛型(Generics) 泛型是CLR 2.0中引入的最重要的新特性,使得可以在類、方法中對使用的類型進行參數化。 例如,這裡定義了一個泛型類: class MyCollection<T> { T variable1; private void Add(T param){ } } 使用的時候:MyCollection<string> list2
Time of Update: 2018-07-25
一直以來感覺對檔案的讀寫和流的使用比較陌生,最近在寫的一個project正好需要讀取csv檔案的資料和建立新的csv檔案,於是在網上看了一些對csv檔案讀寫操作的文章,基本瞭解了大概的操作。 讀取.csv檔案 注意:.csv檔案是用','作為分隔字元,所以每次讀取到','截止。 代碼如下: #include<iostream> #include<fstream> using namespace std; int
Time of Update: 2018-07-25
#include<stdio.h>int main(){ int c = 0; int num_count = 0; int emp_count = 0;
Time of Update: 2018-07-25
一. 在c中分為這幾個儲存區 1.棧 - 由編譯器自動分配釋放 2.堆 - 一般由程式員分配釋放,若程式員不釋放,程式結束時可能由OS回收 3.全域區(靜態區),全域變數和靜態變數的儲存是放在一塊的,初始化的全域變數和靜態變數在一塊地區,未初始化的全域變數和未初始化的靜態變數在相鄰的另一塊地區。- 程式結束釋放 4.另外還有一個專門放常量的地方。- 程式結束釋放 &
Time of Update: 2018-07-25
最近開始做面試題,裡面涉及到了很多C++的基礎資料結構,在此複習一遍。 本篇博文內容較為簡單,來自於chao_xun的部落格,我將其分享在此僅供學習與研究用,並不承擔任何法律責任。 以下是內容引用: C++stack(堆棧)是一個容器的改編,它實現了一個先進後出的資料結構(FILO)。 使用該容器時需要包含#include標頭檔; 定義stack對象的範例程式碼如下: stacks1; stacks2; stack的基本操作有:
Time of Update: 2018-07-25
/**************************************************************************** File Name: 12.CmpFrac.c 分數fractions 分子numerator 分母denominator * Function : 1) * 2) * Author : Xubing * Created Time: 2016年09月29日 星期四 09時03分45秒*****************
Time of Update: 2018-07-25
在C語言中,將字串作為字元數組來處理。即C string就是 char arrary[MAX_SIZE];字元數組。而C++中的string 是 string class, 聲明形式 string strObject.變數是個對象。只是他是C++ 標準庫提供的string類,其實現效果跟使用者自訂的類一樣。 C string 字串可以用字串數組 char Array[MAX_SIZE];與字串變數 char *p; 兩種方式來儲存。以 ‘\0’為字串結束標誌。strlen 是把串結束符
Time of Update: 2018-07-25
不記得誰說過,能用const的時候盡量用const。確實,const為增加程式的健壯性做出了很大貢獻,但是const修飾指標的時候還是值得注意的。 一.指向const對象的指標; 如果指標指向const對象,那麼很顯然不能通過指標改變其所指向的const值。為了保證這個特性,C++語言強制要求指向const對象的指標也必須要具有const特性。 const double = 1.0;
Time of Update: 2018-07-25
在 VC++ 中我幾乎每一個 Windows Service 都是採用 I/O 完成連接埠。至於在 C# 中如何使用 I/O 完成連接埠,一直很少見人提及。 William Kennedy 的三篇文章《 IOCP Thread Pooling in C# 》,對實現這種機制很有協助,唯一美中不足的是,它只能把 int 數值壓入完成連接埠,而無法像 VC++ 中那樣可以將介面指標 /
Time of Update: 2018-07-25
今天測試了一下C++ 源檔案中要調用C源檔案定義的函數,最初在標頭檔中聲明函數,C源檔案和C++源檔案中都include標頭檔,導致CodeBlock編譯不通過。經過修改和測試,發現在C源檔案中不能include標頭檔,並且應該在標頭檔中添加extern操作。 main.cpp #include <iostream>#include "sum.h"using namespace std;int main(void){ cout <<
Time of Update: 2018-07-25
C++讀書筆記之靜態轉換(static_cast) 相對動態類型轉換,靜態類型轉換則做範圍更廣的轉換,但前提是必須是相關的類型,也就是說,編譯器必須認為是可理解的,例如,一個非多態的類階層,祖孫對象的指標互易。如,研究生對象指標到學生對象指標的轉換,或反之。由於void *到任何類型指標都可以進行想融性的轉換,所以,void *到學生對象的指標轉換也可以由static_cast來進行,還是從局部堆空間申請的空間轉換為整形數組空間等。甚至有時候,要將void *
Time of Update: 2018-07-25
1.數實值型別轉換為string 1.1使用函數模板+ostringstream 使用函數模板將基礎資料型別 (Elementary Data Type)(整型、字元型、實型、布爾型)轉換成string。 //ostringstream對象用來進行格式化的輸出,常用於將各種類型轉換為string類型//ostringstream只支援<<操作符template<typename T> string toString(const T& t){
Time of Update: 2018-07-25
引入內嵌函式的目的是為瞭解決程式中函數調用的效率問題,也是用內嵌函式取代帶參宏定義(函數傳參比宏更加方便易用) inline關鍵字用來定義一個類的內嵌函式。 在類體中和類體外定義成員函數是有區別的:在類體中定義的成員函數為內聯(inline)函數,在類體外定義的不是。如果你既希望將函數定義在類體外部,又希望它是內嵌函式,那麼可以在聲明函數時加 inline
Time of Update: 2018-07-25
以前經常聽人提起如何計算程式已耗用時間,給出一系列函數,當時沒有注意,隨便選了clock()最簡單的方式進行計算。等到真正需要檢測程式效能提升了多少,才發現這裡面有很多要注意的地方。 最常用的的方式: #include time_t start = clock(); time_t end = clock(); printf("the running time is : %
Time of Update: 2018-07-25
12.3 類範圍 1.在定義於類外部的成員函數中,形參表和成員函數體都出現在成員名之後。這些都是在類範圍中定義,所以可以不用限定而引用其他成員。例如,類 Screen中 get 的二形參版本的定義: char Screen::get(index r, index c) const { index row = r * width; // compute the row location
Time of Update: 2018-07-25
替換是加密過程中常用的一種運算。可以設計一種簡單的替換如下:將大寫字母A~Z按照字母順序排列成一個圓圈,字母Z後面緊接著字母A,對於任何一個待替換的大寫字母,取其後第n個字母代替它,即完成替換過程。例如,當n=2時,A被C替換,B被D替換,C被E替換,……,Y被Z替換,X被A替換,Z被B替換。對於小寫字母、數字也可以類比處理。要求編寫一個程式,由使用者輸入n(類似於密鑰),並將使用者輸入的待替換的字串(類似於明文,由大寫和小寫字母組成)逐個字母替換後輸出(輸出結果類似於密文)。思考一
Time of Update: 2018-07-25
定義:sizeof是計算對象所佔的位元組數,通常用來查看變數、數組或結構體等所佔位元組個數的操作運算子。 形式:sizeof()有三種文法形式: 1)用於資料類型:sizeof(type_name);//sizeof(類型);
Time of Update: 2018-07-25
當operator new沒有能力為你分配出你所申請的memory,會拋出一個std::bad_alloc exception。某些老版本的編譯器則是返回0。 也可以讓編譯器不拋出異常,只返回0,做法:`new (nothrow)Foo; C++在拋出異常之前(不止一次)調用一個由程式員知道的handle。(C++在new失敗的時候,會調用程式要指定的函數) 形式為: typedef void(* new_handler)(); new_handler
Time of Update: 2018-07-25
#include <stdio.h> void main () { printf("0 | 0 is %d\n", 0 | 0);