Time of Update: 2017-01-19
本文執行個體講述了C++中I/O模型的select模型用法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:void main() { CInitSock initSock; USHORT nPort = 9999; //監聽的連接埠 SOCKET sListen = ::socket(AF_INET,
Time of Update: 2017-01-19
void srand( unsigned int seed );head file is <stdlib.h>RemarksThe srand function sets the starting point for generating a series of pseudorandom integers. To reinitialize the generator, use 1 as the seed argument. Any other value for seed sets
Time of Update: 2017-01-19
變態的命名我們在寫程式時,一般講究見到變數的命名,就能讓別人基本知道該變數的含義。memcpy記憶體拷貝,沒有問題;memmove,記憶體移動?錯,如果這樣理解的話,那麼這篇文章你就必須要好好看看了,memmove還是記憶體拷貝。那麼既然memcpy和memmove二者都是記憶體拷貝,那二者究竟有什麼區別呢?先說memcpy你有沒有好好的參加過一場C++筆試。讓你寫出memcpy的實現,這是多麼常見的筆試題啊。現在,拿起你的演算紙和筆;是的,是筆和紙,不是讓你在你的IDE上寫。寫不出來?看下面吧
Time of Update: 2017-01-19
本執行個體的測試URL:http://www.mystudy.cn/web/index.aspx 1、通過C#擷取當前頁面的URL 複製代碼 代碼如下: string url = Request.Url.AbsoluteUri; //結果: http://www.mystudy.cn/web/index.aspx string host = Request.Url.Host; //結果:www.mystudy.cn string rawUrl = Request.RawUrl;
Time of Update: 2017-01-19
本文以執行個體形式講述了基於C++實現簡單的希爾排序Shell Sort的方法,是一個很經典的演算法,具體實現代碼如下:#include <iostream>using namespace std;void ShellSort(int* iArray,int length){ //初始化jump等於length int jump = length; //標記本趟檢測是否進行了交換, // 若進行了 則還有下次從頭開始的檢測, // 否則停止,繼續改變jump的值 做另一趟排序
Time of Update: 2017-01-19
前言RTTI是”Runtime Type Information”的縮寫,意思是運行時類型資訊,它提供了運行時確定物件類型的方法。RTTI並不是什麼新的東西,很早就有了這個技術,但是,在實際應用中使用的比較少而已。而我這裡就是對RTTI進行總結,今天我沒有用到,並不代表這個東西沒用。學無止境,先從typeid函數開始講起。typeid函數typeid的主要作用就是讓使用者知道當前的變數是什麼類型的,比如以下代碼:複製代碼 代碼如下:#include
Time of Update: 2017-01-19
最近學習C++11的variadic template argument,終於可以擺脫用fpmacro模板來複製一大堆代碼的做法了,好開心。這個例子的main函數用lambda寫了一個斐波那契數列的遞迴計算函數。跟以往不同的是,在Y函數的協助下,這個lambda表達是可以成功看到自己,然後遞迴調用。當然這仍然需要用普通的C++遞迴來實現,並不是λ-calculus那個高大上的Y Combinator。#include <functional>#include
Time of Update: 2017-01-19
複製代碼 代碼如下:using System;using System.Collections.Generic;using System.Text;using System.Net.Mail;using System.Net;namespace MyQuery.Utils{ /// <summary> /// 封裝郵件處理 /// by 賈世義
Time of Update: 2017-01-19
對於學習過C語言的朋友應該都知道,使用 malloc/calloc 等分配記憶體的函數時,一定要檢查其傳回值是否為“null 指標”(亦即檢查分配記憶體的操作是否成功),這是良好的編程習慣,也是編寫可靠程式所必需的。但是,如果你簡單地把這一招應用到new上,那可就不一定正確了。我經常看到類似這樣的代碼:int * p = new int [MAXSIZE]if (p == 0) // 檢查p指標是否為空白return -1;//other code其實,這裡的 if ( p == 0 )
Time of Update: 2017-01-19
問題描述之前在公司做了一個windows
Time of Update: 2017-01-19
本文執行個體講述了基於Directx MMX 編寫的實現映像灰階處理的方法,要編譯此程式需DirectX SDK5.0,代碼中所需要的ddutil.h與ddutil.cpp檔案,請自行下載加入工程。在WindowNT4.0+SP3環境中編譯通過,代碼已經過整理,包含有注釋。如下所示:#include <windows.h>#include <windowsx.h>#include <stdio.h>#include
Time of Update: 2017-01-19
本文執行個體講述了C++實現將一個字串中的字元替換成另一個字串的方法,分享給大家供大家參考。具體方法如下:題目要求:原地實現字串中的每個空格替換成"%20",例如輸入"We are happy", 輸出"We%20are%20happy"被替換的字串當然不僅僅是空格,上面只是個例子這是道很好的題目,也是百度面試中的一道題,題目不難,但是問題得考慮全面。這裡給出如下實現代碼:#include <iostream>#include <vector>#include
Time of Update: 2017-01-19
本文以執行個體形式講述了C++實現列印1到最大的n位元的方法。分享給大家供大家參考。具體方法如下:題目要求:輸入數字n,按順序列印出從1最大的n位十進位數,比如輸入3,則列印出1,2 ,3一直到最大的3位元999實現代碼如下:#include <iostream>using namespace std;void printArray(char *array, int size){ if (array == NULL || size <= 0) { return; } int
Time of Update: 2017-01-19
本文執行個體主要實現:輸入一個括弧字串,依次檢驗,若為左括弧則入棧,若為右括弧則出棧一個字元判斷是否與之相對應,在最後還需判斷棧是否為空白,如果不為空白則不匹配。首先回顧棧的基本知識:1.定義棧的結構體並初始化一個新棧:struct stack{ char strstack[stacksize]; int top;};void InitStack(stack &s){ s.top=-1;}2.出棧和入棧操作:char Push(stack &s,char a){
Time of Update: 2017-01-19
本文執行個體講述了C語言實現計算樹的深度的方法。是演算法設計中常用的技巧。分享給大家供大家參考。具體方法如下:/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream>using namespace std;struct Node { Node(int i = 0, Node *l = NULL, Node *r = NULL) : data(i), left(l),
Time of Update: 2017-01-19
static和const是C++程式設計中非常重要的概念,本文執行個體列舉了C++類中的static和const的規則和用法。供大家參考借鑒。具體說明如下:首先以代碼用來舉例說明。範例程式碼如下:class A{public: A():m(10) //const成員必須在建構函式的初始化構造列表中初始化 { q = 40; } void fun1()const { m++; //錯誤。const成員是常量,不能改變其值。 n++;
Time of Update: 2017-01-19
本文執行個體講述了C語言實現帶頭結點的鏈表的建立、尋找、插入、刪除操作。是資料結構中鏈表部分的基礎操作。分享給大家供大家參考。具體方法如下:#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node* next;// 這個地方注意結構體變數的定義規則} Node, *PNode;Node* createLinklist(int length){ int i = 0;
Time of Update: 2017-01-19
單鏈表的逆序輸出分為兩種情況,一種是只逆序輸出,實際上不逆序;另一種是把鏈表逆序。本文就分別執行個體講述一下兩種方法。具體如下:1.逆序輸出執行個體代碼如下:#include<iostream>#include<stack>#include<assert.h>using namespace std;typedef struct node{ int data; node * next;}node;//尾部添加node * add(int n, node *
Time of Update: 2017-01-19
本文執行個體展示了C++與C#互調dll的實現步驟,在進行大型項目共用dll動態連結程式庫中可以用到。具體方法如下:一、C#調用C++ dll步驟(只能匯出方法):1. c++建立空項目->源檔案檔案夾中添加cpp檔案和函數2. c++屬性設定中,配置類型設定為動態庫dll,Common Language Runtime 支援改為/clr3. c#引用c++的dll4. c#聲明c++的方法,並添加 DllImport特性5. c#工程屬性設定為:目標平台x866. 注意方法的類型匹配7.
Time of Update: 2017-01-19
本文通過一個執行個體展示了C++實現鏈表倒序的方法,對於C++資料結構的學習有很好的參考借鑒價值。具體方法如下:首先,C++鏈表倒序的痛點在於如何一個個地修改。雖然不是數組,但是大概思想是一樣的,所以可以用一個for循序,一個遊標對應for迴圈裡面的 i,只不過要記得前一個節點和後一個節點,尤其是後一個,因為修改之後就訪問不到後面的,所以要記錄。for每一個迴圈只改變所指向的那個節點的指標,這樣既不會亂套了。用一個for迴圈就非常好理解了,執行個體代碼如下所示:#include