#include<iostream>#include<string>using namespace std;//任意進位之間的轉換/*** s1 轉換之前的數* s2 轉換之後的數* d1 原進位數* d2 需要轉到的進位數* 高於9的位元用大寫'A'~'Z'表示,2~16位進位通過驗證*/void conversion(string s1,string &s2,long d1,long d2){ //思路,還是將原數轉換成十進位數
C#語言還是比較常見的東西,這裡我們主要介紹調用C# Thread.Start()方法,包括介紹XX等方面。 我們首先建立一個線程,使用Thread類建立線程時,只需提供線程入口即可。(線程入口使程式知道該讓這個線程幹什麼事) 在C#中,線程入口是通過ThreadStart代理(delegate)來提供的,你可以把ThreadStart理解為一個函數指標,指向線程要執行的函數,當調用C# Thread.Start()方法後,線程就開始執行ThreadStart所代表或者說指向的函數。
如圖我們建立了一個C#控制台應用程式,上面的名稱表示我們的項目的名稱,下面的是我們解決方案的名稱(預設和項目名稱相同), 一個解決方案裡面有多重專案 點擊確定就產生了一個項目,項目裡面會內建一個Program類,它包含了程式的入口方法Main()方法 接下來介紹一些常用的概念: 變數:電腦中能儲存計算結果或標示值的抽象概念 變數的命名規則:首字元(允許a-z,A-Z,,@;不允許0-9);後續字元(允許a-z,A-Z,0-9,;不允許@)
1)形參 形參顧名思義就是形式上的參數,不是實際的參數,它代替實際傳入方法的值。在方法體代碼中代表了值本身參與運算。形參定義於參數中,它不同於方法體內局部變數,因為是一個變數,在它的範圍內不允許存在一個同名的局部變數,不管他們的類型是否相同,都是不允許出現同名的。 看下面的程式碼範例: //這其中的strName就是一個形參也是一個變數,不允許出現同名的局部變數 public void SayHelloTo(string strName) {
程式的關閉是很講究的,處理的不好的話,將軟體連續開啟和關閉,當數次後在啟動軟體後程式會崩潰。或者程式退出很慢。細節決定成敗,一款好的軟體應該從各方面都要做嚴格地反覆地推敲,力爭做到無可挑剔。 有的程式員喜歡在關閉的時候讓程式做一些事情,比如儲存一些記錄什麼的,我覺得這樣大可不必,因為這些會影響退出的時間,單一職責原則一再強調職責要單一,關閉程式就是關閉程式,不要摻雜其它動作。
/*小明剛上小學,學會了第一個撲克牌“魔術”,到處給人表演。魔術的內容是這樣的: 他手裡握著一疊撲克牌:A,2,....J,Q,K 一共13張。他先自己精心設計它們的順序,然後正面朝下拿著,開始表演。 只見他先從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是A;然後再從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是2;......如此迴圈直到手中只有一張牌,翻開放桌子上,剛好是K。 這時,桌上牌的順序是:A,2,3,4,5,6,7,8,9,10,J,Q,K
代碼能跑,不過實在是觀察不出來什麼讀者優先,或者寫者優先。不知道這種優先順序的衝突的情境從何而來,也就不知道書上講得那些情況到底是什麼。 特別是在下面代碼的writer中,如果引入 sem_wait(&z)的話,writer進程會一直阻塞,從而引起讀者也阻塞。去掉後,呈現出讀者優先的狀況。 #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include
《Head First 設計模式》例子的C++實現(3 裝飾模式) 裝飾模式是在不必改變原類檔案和使用繼承的情況下,動態地擴充一個對象的功能。它是通過建立一個封裝對象,也就是裝飾來包裹真實的對象。 裝飾模式的特點是 裝飾對象和真實對象有相同的介面。這樣用戶端對象就能以和真實對象相同的方式和裝飾對象互動。 但是這種模式會導致設計中出現許多小類,如果過度使用,會使程式變得很複雜。 下面是代碼: ///Beverage.h#ifndef BEVERAGE_H#define
// poker.c// day05//// 一個撲克牌產生程式:運行如下:// 請輸入你要的張數:5// 程式輸出:H5、H6、H7、H8、H9(Spade(黑桃)、Club(梅花)、Heart(紅桃)、Diamond(方塊))// 建議:char suit[4] = {'S','D','C','H'}// char rank[13] = {'2','3','4','5','6','7','8','9','T','J','Q','K','A'};// Created by
//以下基於Debug偵錯模式, map<int, string> mss; clock_t c1, c2; c1 = clock(); for (int i=0; i<500000; i++) { unsigned int lun = 123324; char num[] ="012345678912"; vector<char> vv; //【1】ostringstream
一.queue模版類的定義在<queue>標頭檔中。 queue與stack模版非常類似,queue模版也需要定義兩個模版參數,一個是元素類型,一個是容器類型,元素類型是必要的,容器類型是可選的,預設為dqueue類型。 定義queue對象的範例程式碼如下: queue<int>q1; queue<double>q2; queue的基本操作有: 1.入隊:如q.push(x):將x元素接到隊列的末端; 2.出隊:如q.pop()
// 2202.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <iostream>using namespace std;class Test{public:/*用轉換建構函式可以將一個指定的類型的資料轉換為類的對象用類型轉換函式可以將一個類的對象轉換成一個指定類型的資料類型轉換函式的一般形式為:operator 類型名(){實現轉換的語句}在函數名前面不能指定函數類型,函數沒有參數下面的例子函數名是:
之前看《C++ Primier》的時候,也解到在順序型視窗裡insert/erase會涉及到迭代器失效的問題,並沒有深究。今天寫程式的時候遇到了這個問題。 1 莫名其妙的Erase 最初我的程式是醬紫的,別說話,我知道這樣是有問題的,可這樣是最直觀的想法 int arr[]={0,1,2,3,4,5,6,7,8,9,10}; vector<int> a(arr,arr+sizeof(arr)/sizeof(*arr));for (auto it
1、 聲明外部變數 現代編譯器一般採用按檔案編譯的方式,因此在編譯時間,各個檔案中定義的全域變數是 互相透明的,也就是說,在編譯時間,全域變數的可見域限制在檔案內部。下面舉一個簡單的例子。建立一個工程,裡面含有A.cpp和B.cpp兩個簡單的C++源檔案: //A.cpp int i;
1、用c語言實現同位 unsigned int v; // 待檢測的數字bool parity = false; //初始判斷標記while (v){ parity = !parity; v = v & (v - 1);} 2、通過構建字典表進行同位: static const bool ParityTable256[256] = { #
1、區分大端小端: 記憶體的低地址存放的資料的高位,就是大端儲存。 記憶體低地址存放資料的低位,就是小端儲存。 2、下面的圖可以清晰理解 3、C++代碼驗證大端還是小端儲存 #include <iostream>using namespace std;int main(){ int nNum = 0x12345678; char chData = *(char*)(&nNum); if (chData == 0x12) {
以下四個函數編譯器會協助自動產生,1、default建構函式 2、copy建構函式 3、賦值建構函式 4、解構函式 但是如果你顯示聲明了一個建構函式,default建構函式將不會被自動產生.這樣你就不能再使用default建構函式了。
對於當前程式,Process.Exited事件並不起作用,如下代碼: static void Main(){ var pro = Process.GetCurrentProcess(); pro.EnableRaisingEvents = true; pro.Exited += new EventHandler(pro_Exited);}static void pro_Exited(object sender, EventArgs e){ throw new
因為原來C風格的暴力萬能類型轉換容易導致運行時出錯,所以要引入分類更清晰提前發現錯誤的轉換文法。 對象的類型轉換包含了對象的引用或指標。 1.static_cast是編譯器預設選項, 該運算子把expression轉換為type-id類型,但沒有運行時類型檢查來保證轉換的安全性。 但是 沒有動態檢查所以類對象間非直線繼承轉換不支援(無關對象指標類型),C風格的轉換確是可以的,所以並不是C風格轉換的替代品。
類模板 類別模組的概念和意義 在C++中有這樣一些類: 主要用於儲存和組織資料元素 類中資料群組織的方式和資料元素的具體類型無關 如:數組類,鏈表類,Stack類,Queue類等 C++中將模板的思想應用於類,使得類的實現不關注資料元素的具體類型,而只關注類所需要實現的功能。 所以C++中的類模板是這樣的: 以相同的方式處理不同類型的資料 在類聲明前使用template進行標識 < typename T >