Time of Update: 2018-12-05
class Concept{ public: string name;};map<Concept, int> conceptCount;conceptCount[i.c]++;編譯錯誤:/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_function.h: In member function ‘bool
Time of Update: 2018-12-05
條款1:盡量用const和inline而不用#define盡量用編譯器而不用預先處理常量的代碼在編譯時間報錯,就會很令人費解。因為報錯的是常量。代替函數調用的宏會有很多問題。如:#define max(a,b) ((a) > (b) ? (a) : (b))
Time of Update: 2018-12-05
這麼多種手機作業系統,究竟哪種支援C/C++開發的應用程式呢,都該用什麼開發工具呢 說起來問題起因比較簡單,同事 作J2ME開發,想多手機上讀取手機卡資訊,可是找不到開發介面。想到C/C++的開發包可能提供了這樣的介面,把問題推給了我我雖然是做C/C++開發的,可我以前都是作的Windows下的開發呀,手機作業系統一點不了,也不知對應各種手機OS,從何處著手找相應的開發工具,開發包和開發文檔啊?
Time of Update: 2018-12-05
搞了好長時間,總算編譯過去了…… Pro*C程式好像就是用C語言來操作ORACLE資料庫的程式(有待考證;-) )Pro*C程式一般是以pc為尾碼的,ORACLE也提供了先行編譯程式,可以將這些SQL語句之類的都先行編譯成C或C++程式,然後再編譯相應的C/C++程式,產生可執行檔 要將pc編譯成cpp檔案,要使用proc程式:它的命令用法如下:proc iname=filename [Option_name1=vatue1
Time of Update: 2018-12-05
下面的代碼就是實現了串連資料庫,然後做一些操作我的資料庫表名為ym_test,僅有兩個欄位,int型的I,還有char *型的dbop.pc檔案#include <stdio.h> #include <stdlib.h> #include <string.h> #include "dbop.h"
Time of Update: 2018-12-05
如果函數返回指標,則要小心了,最好要將其變為智能指標比如 int* ->shared_ptr<int>,並且在函數內部還可以改智能指標的刪除器。即當引用計數為0時的舉動,能夠為函數或函數對象 。比如shared_ptr<int> ptr(int* a,f) //f 為刪除器。 傳回值謹慎用by-reference 參數傳遞盡量用by
Time of Update: 2018-12-05
原題略。答案的問題在於 當一開始數組的第一個元素為0時,他為偶數,刪除它後,迭代器指向第一個元素1 ,錯誤在於下一句,--lit 使得迭代器指向begin的前一個,超出了範圍,所以導致運行錯誤。 必須要瞭解for語句的實現,則可以解決這個問題。#include<vector>#include<iostream>#include<list>using namespace std;int main(){int ia[]={0,1,1,2,3,5,8,13,2
Time of Update: 2018-12-05
virtual函數:介面必須被繼承。non-virtual:介面和實現都被繼承。public繼承情況:Liskov Substitution PrincipleBase能用的地方都能用Derived代替。如函數參數用point或reference傳遞對象。public繼承的關鍵:is-a模型。derived-class的名稱會遮掩Base-class的名稱。例:class Base{public:virtual void mf1()=0;virtual void
Time of Update: 2018-12-05
順序容器:vector deque list適配器:根據原始容器類型所提供的操作,通過定義新的操作介面,適應基礎的容器類型。 容器元素初始化: C<T> c; //預設建構函式 C<T>c(n); //n個值初始化,只適用於順序容器,必須給出預設建構函式 C<T>c(n,t); //n個t 只適用於順序容器,可以不給,但要給出
Time of Update: 2018-12-05
thread_block()用於將current_thread
Time of Update: 2018-12-05
這個源檔案主要講的是頁分配的過程。enum palloc_flags { PAL_ASSERT = 001, /* Panic on failure. */ PAL_ZERO = 002, /* Zero page contents. */ PAL_USER = 004 /* User page. */ };頁分配時可以有三種狀態,PAL_ASSERT:如果頁不能被分配,則kernel
Time of Update: 2018-12-05
近段時間,有幾個剛剛開始學習C#語言的愛好者問我:C#中的函數,其參數的傳遞,按值傳遞和按引用傳遞有什麼區別。針對這一問題,我簡單寫了個樣本程式,用以講解,希望我沒有把他們繞暈。因為,常聽別人說起:“你不說我還明白,你一說,我就糊塗了”。好,現在開始吧。我們知道,在C#中,類型有實值型別(例如int)和參考型別(例如string)之分,傳遞參數有按值傳遞和按引用傳遞之分。這樣,簡單的組合一下,我們可以得到以下幾種傳遞方式:(1)按值傳遞實值型別。(2)按值傳遞參考型別。(3)按引用傳遞實值型別。
Time of Update: 2018-12-05
Code: Printing a DataGrid (Visual C#) This example demonstrates printing a DataGrid control. Example private void printGrid_Click(System.Object sender, System.EventArgs e) printDocument1.Print(); private void printDocument1_PrintPage(System.Object
Time of Update: 2018-12-05
這次在工作之餘用C#寫了一個簡單的貪吃蛇程式,一般的都是WinForm形式的,這次弄了個控制台版本的,因為C#
Time of Update: 2018-12-05
With the release of Visual Studio 2005, the C# language has been updated to version 2.0.Generic types are added to the language to enable programmers to achieve a high level of code reuse and enhanced performance for collection classes. Generic
Time of Update: 2018-12-05
檔案 I/O 在C++中比烤蛋糕簡單多了。 在這篇文章裡,我會詳細解釋ASCII和二進位檔案的輸入輸出的每個細節,值得注意的是,所有這些都是用C++完成的。 一、ASCII 輸出 為了使用下面的方法, 你必須包含標頭檔<fstream.h>(譯者註:在標準C++中,已經使用<fstream>取代< fstream.h>,所有的C++標準標頭檔都是無尾碼的。)。這是 <iostream.h>的一個擴充集, 提供有緩衝的檔案輸入輸出操作. 事實上,
Time of Update: 2018-12-05
C/C++ 誤區三:強制轉換 malloc() 的傳回值 來源:螞蟻的 C/C++ 標準編程 作者:antigloss 等級:精品 發佈於2005-10-22 14:17 被讀4942次 【字型:大 中 小】 首先要說的是,使用 malloc 函數,請包含 stdlib.h(C++ 中是 cstdlib),而不是 malloc.h 。因為 malloc.h 從來沒有在 C 或者 C++ 標準中出現過!因此並非所有編譯器都有 malloc.h 這個標頭檔。但是所有的 C 編譯器都應該有
Time of Update: 2018-12-05
條款29: 避免返回內部資料的控制代碼盡量不要返回類成員變數的地址或引用等控制代碼,以防止被外部輕易的改變。而且很容易出問題。如返回了一個類內部成員變數指標指向某個緩衝區,在外部調用delete等操作這個緩衝區,勢必造成類內部成員變數不能再有效使用了。也不要返回了一個局部對象,局部對象出了範圍之後就被銷毀。 條款30:
Time of Update: 2018-12-05
Item M1:指標與引用的區別引用必須被初始化,且不能改變它本身使其成為另一個變數的別名。Item M2:盡量使用C++風格的類型轉換這樣的類型轉換不論是對人工還是對程式都很容易識別。它們允許編譯器檢測出原來不能發現的錯誤。你能用dynamic_cast把指向基類的指標或引用轉換成指向其衍生類別或其兄弟類的指標或引用,而且你能知道轉換是否成功。失敗的轉換將返回null
Time of Update: 2018-12-05
Item M17:考慮使用lazy evaluation(懶惰計演算法)如:String s1 = "Hello";String s2 = s1;或許s2在程式中根本不會用到,所以在開始的時候不要調用s2的賦值建構函式來初始化,到後面要用,或者要改寫s2的值的時候再調用,再進行賦值。 Item M18:分期攤還期望的計算比如要計算某組資料的平均值。 我們可以在每一個新數值加入到程式裡面的時候就去計算新的平均值。這樣,當我們要取這個值的時候,可以立刻取出來。 Item M19:理解臨時對象的來源1