Time of Update: 2018-12-03
1.operator overloadingC++可能通過operator 重載操作符,格式如下:類型T operator 操作符 (),如比重載+,如下所示template<typename T> class A{public: const T operator + (const T& rhs) { return this->m_ + rhs; }private: T
Time of Update: 2018-12-03
關於#pragma warning1. #pragma warning只對當前檔案有效(對於.h,對包含它的cpp也是有效),而不是對整個工程的所有檔案有效。當該檔案編譯結束,設定也就失去作用。2. #pragma warning(push)儲存當前警示設定。#pragma warning(push, n)儲存當前警示設定,並設定警示層級為n。n為從1到4的自然數。3. #pragma
Time of Update: 2018-12-03
1.CArchive類沒有基類2.CArchive類是實現對象持久化的方法,它可以把記憶體中的對象持久化到本地磁碟中去,也可以從本地磁碟中讀取資料在記憶體在構建對象3.CArchive類和輸入輸出資料流類似。輸入輸出資料流處理是acii字元序列,而CArchive類是以一種高效的非冗餘的方式來處理二進位對象資料。4.使用CArchive類之前,必須要有一個CFile檔案對象,同時還必須保證CArchive的載入和儲存操作必須是在CFile處於開啟的狀態。5.CArchive類重載的>>
Time of Update: 2018-12-03
Visual C++中對象的序列化與檔案I/O研究持久性和序列化
Time of Update: 2018-12-03
<pre>//@yansha:字串末尾要加結束符'\0',不然輸出錯位結果char *strncpy(char *strDes, const char *strSrc, unsigned int count) { assert(strDes != NULL && strSrc != NULL); char *address = strDes; while (count-- && *strSrc != '\
Time of Update: 2018-12-03
1、記憶體配置方面: 堆:一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式是類似於鏈表。可能用到的關鍵字如下:new、malloc、delete、free等等。 棧:由編譯器(Compiler)自動分配釋放,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。2、申請方式方面: 堆:需要程式員自己申請,並指明大小。在c中malloc函數如p1 = (char
Time of Update: 2018-12-03
一.環境: x86/WinXP/VC 6.0二.用例:int swap(int a, int b){ int v; v = a; a = b; b = v; return v;}void main(void){ int a = 7; int b = 10; int c = 0; c = swap(a,b); return;}三.分析:1: int swap(int a, int b)2: {00401020 push ebp00401021 mov
Time of Update: 2018-12-03
#include <stdlib.h>把字串轉化成浮點數:double atof( const char *str ); 或 double strtod( const char *start, char **end );把字串轉化成整型數:int atoi( const char *str ); 長整型:long atol( const char *str );二分尋找:void *bsearch(const void
Time of Update: 2018-12-03
/**函數原型:#include <stdlib.h>void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );**/// For example:int compare( const void* a, const void* b ){ int* arg1 = (int*)a; int* arg2 = (int*)b; if ( *arg1
Time of Update: 2018-12-03
服務端:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using
Time of Update: 2018-12-03
C語言中有一種長度不確定的參數,形如:"...",它主要用在參數個數不確定的函數中,我們最容易想到的例子是printf函數。C語言用va_start等宏來處理這些可變參數。其實原理挺簡單,就是根據參數入棧的特點從最靠近第一個可變參數的固定參數開始,依次擷取每個可變參數的地址。標準C語言中標頭檔<stdarg.h>專門用來對付可變參數列表,它包含了一組宏和一個va_list的typedef聲明。不同平台有不同的定義,X86下的宏定義:typedef char *
Time of Update: 2018-12-03
#include <stdio.h>#include <time.h>void main(){time_t sec; //typedef long time_tstruct tm * curTime;sec = time(NULL); //擷取時間,從1970.1.1到現在的秒數,也可以寫成 time(&sec);curTime = localtime(&sec);
Time of Update: 2018-12-03
一個完全的Pascal程式結構program 程式名; uses 已知單元說明; label 標號說明; const 常量說明; type 類型說明; var 變數說明; function 函數說明; procedure 過程說明;begin 語句; 語句; …… 語句end.1. 注釋不同一般有三種注釋的方法:{this is a comment}(* this is another comment *)// this is a comment up to the end of
Time of Update: 2018-12-03
很多初學者往往對遞迴迷惑不解,也在這上面花了不少的時間。其實教材上的例子很經典,只是它說的有一些嘮叨了。初學者會看的頭大的。編程是解決問題的,而現實中很多的問題都是比較簡單的,沒有象漢諾塔那麼複雜。我們也不必追究遞迴到底是怎樣實現的,我們只是要會用遞迴,會用遞迴來為我們解決一些問題,這就行了。 首先來看一個例子:有一個Febonacci序列: 1,1,2,3,5,8,13,,21,34........它的問題是:求這個序列中的第N個數。由於它的函數原形是:f(n)=
Time of Update: 2018-12-03
/*zstu 2021*//*這是解a*x+b*y=1的演算法,如果要求a*x+b*y=n,只要結果乘以n就可以了*、#include<stdio.h>int gcd(int a,int b,int*x,int *y){int temp,r;if(a%b==0){*x=0;*y=1;return b;}r=gcd(b,a%b,x,y);temp=*x;*x=*y;*y=temp-a/b*(*y);return r;}
Time of Update: 2018-12-03
#include <stdio.h>#define LL unsigned long long intinline LL mod(LL a,LL b){while (a>=b)a-=b;return a;}//a*b mod cinline LL MulAndMod(LL a, LL shl_b,LL c){LL val,pre;pre = mod(a,c);val = 0;while (shl_b){if (shl_b&0x1)val = mod(val + pre,
Time of Update: 2018-12-03
Display all entries for C++ Algorithms on one page, or view entries individually: accumulatesum up a range of elements求和:用初值與指定範圍內的元素相加。重載的版本不再做加法,而是傳進來的二元操作符被應用到元素上。 adjacent_differencecompute the differences between adjacent elements in a
Time of Update: 2018-12-03
挺簡單的一道題,搞了很久,主要是用java寫的時候對java不熟悉,各種錯誤都出來了,不過學到了不少這題用DP去構造就可以了,另有一題加強版(poj 2778)題意一樣,只不過需要用到矩陣乘法dp[i][j]表示長度為i的串走到了j節點的方案數(不包含病毒串)先獻上java代碼,輸入問題要注意啊,可能有大於127的字元出現,java的讀入很蛋疼,沒好好學過java還真不知道要這麼寫,具體見代碼import java.math.*;import java.util.*;import
Time of Update: 2018-12-03
教訓:使用GDB的時候,調試的目標檔案名不要由數字開頭,中間不要有空格。 本人因為ACM競賽需要,機器上的C++編程環境為:C-Free 5 / CDT+Eclipse +MinGW編譯器,
Time of Update: 2018-12-03
http://www.codeforces.com/problemset/problem/212/C不錯的一個DP題,重在思維。(YY了大神的代碼良久)題意:給你一串由A 和 B組成的字串,首尾是相連的,組成一個環有個規則就是AB 會 變成BA,然後問你有多少個串可以一步變成給你的串比如