Time of Update: 2018-07-25
#include<iostream> using namespace std; int main() { string temp; temp[0]='a'; temp[1]='b'; temp[2]='c'; temp[3]='\0';
Time of Update: 2018-07-25
1.string類對象的插入insert方法, #include <iostream>#include <string>int main (){ std::string str="to be question"; std::string str2="the "; std::string str3="or not to be"; std::string::
Time of Update: 2018-07-25
面試的時候我們可能會經常碰到這個問題,所以我們需要複習一下這個問題。 由於時間要求,我們不可能寫出std::string那樣的功能,我們需要能夠大體實現相關功能. #include<iostream>#include<cstdlib>using namespace std;class String{ friend ostream& operator<<(ostream& os,String& str);public:
Time of Update: 2018-07-25
string類在string標頭檔中,string定義在命名空間std中,若想使用string必須在開頭包含如下代碼: #include <string>using std::string; 定義和初始化string對象 有如下幾種方式: string s1; //預設初始化,s1是一個空串string s2(s1); //s2是s1的副本string s2 = s1;
Time of Update: 2018-07-25
from:http://citycowboy.blog.sohu.com/50058804.html 之所以拋棄char*的字串而選用C++標準程式庫中的string類,是因為他和前者比較起來,不必擔心記憶體是否足夠、字串長度等等,而且作為一個泛型類出現,他整合的操作函數足以完成我們大多數情況下(甚至是100%)的需要。我們可以用 = 進行賦值操作,== 進行比較,+ 做串聯(是不是很簡單?)。我們盡可以把它看成是C++的基礎資料型別 (Elementary Data Type)
Time of Update: 2018-07-25
這個在面試或筆試的時候常問到或考到。 已知類String的原型為: class String{public:String(const char *str = NULL);// 普通建構函式 String(const String &other);// 拷貝建構函式 ~String(void);// 解構函式 String & operator = (const String &other);// 賦值函數 private:char *m_data;/
Time of Update: 2018-07-25
標準庫提供了一些函數用於處理字串,它們的原型位於標頭檔string.h中。 •string.h標頭檔定義了一個變數: size_t:這是不帶正負號的整數類型,它是 sizeof 關鍵字的結果。 •定義了一個宏: NULL:這個宏是一個null 指標常量的值。 string.h標頭檔中定義了22個庫函數。 其中常用的有: •memcpy函數 函數原型: void *memcpy(void *dest, const void *src, size_t n); 函數描述:
Time of Update: 2018-07-25
C語言中如何擷取時間。精度如何。 1 使用time_t time( time_t * timer ) 精確到秒 2 使用clock_t clock() 得到的是CPU時間 精確到1/CLOCKS_PER_SEC秒 3 計算時間差使用double difftime( time_t timer1, time_t timer0 ) 4 使用DWORD GetTickCount() 精確到毫秒 5 如果使用MFC的CTime類,可以用CTime::GetCurrentTime() 精確到秒
Time of Update: 2018-07-25
PS:本文包含了大部分strings函數的說明,並附帶舉例說明。本來想自己整理一下的,發現已經有前輩整理過了,就轉了過來。修改了原文一些源碼的問題,主要是用char *字義字串的問題,導致程式運行時崩潰。另外自己重寫了部分測試程式,使其更能滿足自己測試的需要。不當之處,還請海涵。 @函數原型: char *strdup(const char *s) 函數功能: 字串拷貝,目的空間由該函數分配 函數返回:&
Time of Update: 2018-07-25
引言 簡單工廠、Factory 方法、抽象工廠都屬於設計模式中的建立型模式。其主要功能都是協助我們把對象的執行個體化部分抽象取了出來,最佳化了系統的架構,並且增強了系統的擴充性。此篇部落格是筆者對學完這三種模式之後一個小小的總結 簡單工廠 簡單原廠模式的工廠類一般是使用靜態方法,通過接收的參數不同來返回不同的對象執行個體。不修改代碼的話,是無法擴充的
Time of Update: 2018-07-25
編譯器採用mingw32-g++ c++11,編輯器為codeblocks 如果一個類想要其他類或者函數能夠訪問這個類的非公有成員,那麼可以採用友元的方式。 友元函數: 如果想讓某個非成員函數能夠操作類中的私人成員,可以在這個中聲明這個函數,並且在函數的前面表上friend的關鍵字。一般來說,最好再類定義開始或結束前的位置集中聲明友元。 class A{ friend void fun(A &a);public: string member2;private:
Time of Update: 2018-07-25
1、什麼是多態。 從屬於不同的類對象 , 調用相同的函數(同名函數),最終會具體調用不同的代碼,實現不同的功能, 這就是多態 #include <iostream> using namespace std; class point { private: int xres; int yres; public: //點類的建構函式 point(int x, int y) {
Time of Update: 2018-07-25
如果想讓類中的某個成員可以讓所有的類對象共用,可以使用靜態成員來實現。 用書上的例子打個比方,定義一個Account類,表示賬戶,賬戶當中有一個interestRate成員表示利率。由實際情況可以知道,所有賬戶對應的利率都應該是相等的,所以可以把interestRate這個成員定義成靜態成員。 在每個類的對象當中都不包含任何與待用資料成員有關的資料。 靜態成員的定義 靜態函數和待用資料成員的定義方式如下,在前面加上關鍵字static即可 即將使用的代碼: class
Time of Update: 2018-07-25
代碼編譯運行環境 QT creator 1.cin和cout簡介 cin是C++程式設計語言中的標準輸入資料流對象,即istream類的對象。cin主要用於從標準輸入讀取資料,這裡的標準輸入,指的是終端的鍵盤。此外,cout是流的對象,即ostream類的對象,cerr是標準錯誤輸出資料流的對象,也是ostream 類的對象。這裡的標準輸出指的是終端鍵盤,標準錯誤輸出指的是終端的螢幕。
Time of Update: 2018-07-25
C++ 11標準當中新增加了四個無序關聯容器,分別是 unordered_map 映射 unordered_multimap 多重新對應 unordered_set 集合 unordered_multiset 多重集合 與普通的map和set的準系統一樣,但是內部實現方式卻完全不同。 map與set的實現方式為紅/黑樹狀結構 unordered_map和unordered_set的實現方式為雜湊函數,所以無序關聯容器不會根據key值對儲存的元素進行排序。 unordered_
Time of Update: 2018-07-25
所謂泛型演算法 實際上就是一系列通用的操作,這些操作大多數獨立於任何特定的容器,是通用的,所以叫做泛型演算法。 泛型演算法包含的非常多,這裡只記一些基本的操作。lambda運算式,閉包操作操作和其他迭代器以及配合使用的操作,後序再記錄。 尋找: find函數用來尋找一定範圍內的一個元素,資料有序無序都可以,如果要尋找的類型不是基礎資料型別 (Elementary Data Type),需要重載運算子== find函數的源碼如下,很好理解。
Time of Update: 2018-07-25
//C++中的DLL函數原型為 //extern “C” __declspec(dllexport) bool 方法名一(const char* 變數名1, unsigned char* 變數名2) //extern “C” __declspec(dllexport) bool 方法名二(const unsigned char* 變數名1, char* 變數名2) //C#調用C++的DLL搜集整理的所有資料類型轉換方式,可能會有重複或者多種方案,自己多測試
Time of Update: 2018-07-25
本執行個體講述了C++中重載、重寫(覆蓋)和隱藏的區別,對於C++物件導向程式設計來說是非常重要的概念。 具體分析如下: 1.重載:重載從overload翻譯過來,是指同一可訪問區內被聲明的幾個具有不同參數列(參數的類型,個數,順序不同)的同名函數,根據參數列表確定調用哪個函數,重載不關心函數傳回型別。 範例程式碼如下: class A{public: void test(int i); void test(double i); void test(int
Time of Update: 2018-07-25
C++的多態性用一句話概括就是:在基類的函數前加上virtual關鍵字,在衍生類別中重寫該函數,運行時將會根據對象的實際類型來調用相應的函數。如果物件類型是衍生類別,就調用衍生類別的函數;如果物件類型是基類,就調用基類的函數 1. 用virtual關鍵字申明的函數叫做虛函數,虛函數肯定是類的成員函數。 2. 存在虛函數的類都有一個一維的虛函數表叫做虛表。類的對象有一個指向虛表開始的虛指標。虛表是和類對應的,虛表指標是和對象對應的。 3.
Time of Update: 2018-07-25
視圖矩陣 也稱為攝像機矩陣,它是有三部分組成,即攝像機位置、目標位置以及攝像機上下方向來組成。在DirectX中提供了方法來通過這三部分來形成一個視圖矩陣,這三個參數都為空白間向量(Vector3)。在形成視圖矩陣過程中,如下圖所示,以攝像機位置為起點、攝像機目標位置為終點的單位向量作為攝像機空間的Z’軸座標(相對於世界空間),然後根據左手法則或右手法則計算出攝像機空間的X’軸座標,最後計算出攝像機空間的Y’軸座標。所以視圖矩陣中儲存攝像機空間X’、Y’和Z’軸座標在X、Y和Z方向上的分量,