Time of Update: 2017-01-18
引言: 在上一個專題中介紹了C#2.0 中引入泛型的原因以及有了泛型後所帶來的好處,然而上一專題相當於是介紹了泛型的一些基本知識的,對於泛型的效能為什麼會比非泛型的效能高卻沒有給出理由,所以在這個專題就中將會介紹原因和一些關於泛型的其他知識。 一、泛型型別和型別參數 泛型型別和其他int,string一樣都是一種類型,泛型型別有兩種表現形式的:泛型型別(包括類、介面、委託和結構,但是沒有泛型枚舉的)和泛型方法。那什麼樣的類、介面、委託和方法才稱作泛型型別的呢
Time of Update: 2017-01-18
緣起: 在玩Codeblocks內建的俄羅斯方塊時覺得不錯,然而有時間限制。所以想自己再寫一個。程式效果:主要內容: 程式中有一個board數組,其中有要顯示的部分,也有不顯示的部分,不顯示的部分都儲存1。 如下圖: shape採用4*4數組(shape)儲存。如: 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0
Time of Update: 2017-01-18
數組可以儲存一組或者多組數值的變數,裡麵包含多個元素,數組的每個成員都是一個數組元素。一維數組定義:類型 數組名[常量運算式] = {值1, 值2, 值3…};int a[3] = {0, 1, 2};float f[2] = {1.2, 2.3, 3.14};char str[] = {'h', 'e', 'l', 'l', 'o'};chat str1 =
Time of Update: 2017-01-18
邏輯運算子邏輯運算子,用於對內含項目關聯性運算子的運算式進行組合,形成新的運算式;結果也是只有真或假兩種情況,結果值用 BOOL 類型變數儲存。 運算子 解釋 結合方式 () [] -> . 括弧(函數等),數組,兩種結構成員訪問 由左向右 ! ~ ++ -- + - * & (類型) sizeof
Time of Update: 2017-01-18
在實際計算中可能會出現浮點型的無效資料,格式化輸出到檔案中內容為1.79769e+308,輸出到介面就是很大一串資料。這兩種方式無論哪種在閱讀和尋找時就不是很方便。在開發中遇見浮點型資料無效值得判定。無效值定義如下:#define InvalidDouble *(double*)("\xff\xff\xff\xff\xff\xff\xef\x7f")double price;.........(計算步驟省掉)price=GetPrice();
Time of Update: 2017-01-18
@echo off title=HYTradingGateway自動化編譯打包工具mode con cols=80 lines=40echo -------------------------------------------------------------echo
Time of Update: 2017-01-18
不同目錄下的多個二進位執行檔案的批處理代碼 @echo offpushd "G:\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\"start /min "" G:\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\activemq.batpopdping 127.0.0.1 -n 5 pushd
Time of Update: 2017-01-18
前言:本文書寫的格式與其它不相同。本文題目說是關於C++ API的思考,其實也不僅僅是C++,對於其它語言同樣適用。API實際是指Application Programming
Time of Update: 2017-01-18
try-finally語句是Microsoft對C和C++語言的擴充,它能使32位的目標程式在異常出現時,有效保證一些資源能夠被及時清除,這些資源的清除任務可以包括例如記憶體的釋放,檔案的關閉,檔案控制代碼的釋放等等。try-finally語句特別適合這樣的情況下使用,例如一個常式(函數)中,有幾個地方需要檢測一個錯誤,並且在錯誤出現時,函數可能提前返回。#include <windows.h>#include <stdio.h>try-finally語句的文法與try-
Time of Update: 2017-01-18
你可以用這種方式讀取一個單獨的以空格結束的詞:#include<iostream>#include<string>using namespace std;int main(){ cout << "Please enter a word:\n"; string s; cin>>s; cout << "You entered " << s <<
Time of Update: 2017-01-18
代碼很簡單,這裡就不多廢話了,直接奉上:#include <iostream>using namespace std; int* reverse(int* list, int size){ for (int i = 0, j = size - 1; i < j; i++, j--) { // Swap list[i] with list[j] int temp = list[j]; list[j] = list[i]; list[i] = temp; }
Time of Update: 2017-01-18
什麼是位元組對齊,為什麼要對齊?現代電腦中記憶體空間都是按照byte劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但實際情況是在訪問特定類型變數的時候經常在特
Time of Update: 2017-01-18
宏不遵循C++中關於範圍和類型的規則。這經常導致一些微妙的或不那麼微妙的問題。因此,C++提供更適合其他的C++(譯註:原文為the rest of C++,當指C++除了相容C 以外的部分)的替代品,例如內嵌函式、模板與名字空間。考慮一下:#include "someheader.h"struct S { int alpha; int
Time of Update: 2017-01-18
在C++中,new運算式用於動態建立對象,即在堆(自由儲存區)空間上為對象分配記憶體,而程式員也要小心的使用這些申請來的記憶體空間,當不再使用時應該調用delete運算式來釋放該儲存空間並且將指標置零。 本文學習了如何動態建立對象,動態建立的對象與一般對象的區別,動態建立的對象的初始化以及釋放動態分配的記憶體等知識點。C++中分配的記憶體大致有三類:靜態儲存區,棧記憶體和堆記憶體其中,靜態儲存區是在程式編譯階段就已經分配好的,用於全域變數,static變數等;堆棧是比較常用的Object
Time of Update: 2017-01-18
1 define 只是簡單地文本替換。2 每個機器的字長不同。3 每個類型在不同的機器上,所佔用的記憶體空間不同。4 每個機器內部的位元組大小端不同。5 並不是所有的編譯器或機器都支援最新的C++標準。6 並非所有的編譯器都是從右往左執行單行的多個運算式。7 返回struct時,各個機器有不同的最佳化手段。因此最好使用指標或引用。8 並非所有的運算子都可以重載,並非""不能重載。9 並非所有的編譯器都支援'\uxxx'的Unicode。10 並非所有的預設值都為0。11
Time of Update: 2017-01-18
#define命令#define定義了一個標識符及一個串。在來源程式中每次遇到該標識符時,均以定義的串代換它。ANSI標準將標識符定義為宏名,將替換過程稱為宏替換。命令的一般形式為:#define identifier string注意:1.該語句沒有分號。在標識符和串之間可以有任意個空格,串一旦開始,僅由一新行結束。2.宏名定義後,即可成為其它宏名定義中的一部分。3.宏替換僅僅是以文本串代替宏標識符,前提是宏標識符必須獨立的識別出來,否則不進行替換。例如:#define XYZ this
Time of Update: 2017-01-18
在網上看了些去除空格的代碼,覺得都不是很簡潔,就自己寫代碼實現它本著高效率,不使用額外儲存空間的想法實現該功能去除空格一共有三種:1、去除全部空格;2、一種是去除左邊空格;3、去除右邊空格 想去除左右兩邊空格,只要先去除左邊再去除右邊的就行了以下是實現代碼:/*去除字串中所有空格*/voidVS_StrTrim(char*pStr) { char *pTmp = pStr; while (*pStr != '/0') { if (*pStr != ' ') { *pTmp++ = *
Time of Update: 2017-01-18
C++中數組很坑,有沒有類似Python中list的資料類型呢?類似的就是vector! vector 是同一種類型的對象的集合 ,每個對象都有一個對應的整數索引值。和 string 對象一樣,標準庫將負責管理與儲存元素相關的記憶體。 我們把 vector 稱為容器,是因為它可以包含其他對象 。 一個容器中的所有對象都必須是同一種類型的 。vector對象的定義和初始化同樣的,使用前,匯入標頭檔#include <vector> 可以使用using聲明:using
Time of Update: 2017-01-18
vectorvector是相同類型對象的集合。集合中的每個對象有個對應的索引。vector常被稱為容器(container)。為了使用vector,需要:#include <vector>using std::vector;vector是一個類模版(class template)。C++有函數模版和類模版。模版本身不是函數或類,必須通過指定 類型讓編譯器去執行個體化(instantiation)它。比如vector<int>
Time of Update: 2017-01-18
vector簡介vector是STL中最常見的容器,它是一種順序容器,支援隨機訪問。vector是一塊連續分配的記憶體,從資料安排的角度來講,和數組極其相似,不同的地方就是:數組是靜態分配空間,一旦分配了空間的大小,就不可再改變了;而vector是動態分配空間,隨著元素的不斷插入,它會按照自身的一套機制不斷擴充自身的容量。vector的擴充機制:按照容器現在容量的一倍進行增長。vector容器分配的是一塊連續的記憶體空間,每次容器的增長,並不是在原有連續的記憶體空間後再進行簡單的疊加,而是重新申