原创 STL---auto_ptr實現

#include<iostream> using namespace std; template<class T> class auto_ptr1

原创 c函數---fgets,fgetc,gets,getchar,getc區別

int getch(void)     //從標準輸入讀入一個字符,當你用鍵盤輸入的時候,屏幕不顯示你所輸入的字符。也就是,不帶回顯。 int getche(void)     //從標準輸入讀入一個字符,鍵盤輸入的時候,屏幕顯示所輸入的

原创 linux編程---進程通信---消息隊列

消息隊列是消息的鏈式隊列 1  創建消息隊列        #include <sys/types.h>        #include <sys/ipc.h>        #include <sys/msg.h>        in

原创 算法題目---翻轉單詞順序 VS 左旋轉字符串

輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。 include<iostream> #include<stdio.h> #include<string.h> using namespace std; void Rever

原创 STL源碼---allocator配置器

#ifndef _JJALLOC_ #define _JJALLOC_ #include<new> #include<cstddef> #inclu

原创 linux編程---進程---孤兒進程與殭屍進程區別

基本概念 我們知道在unix/linux中,正常情況下,子進程是通過父進程創建的,子進程在創建新的進程。 子進程的結束和父進程的運行是一個異步過程,

原创 linux編程---IO複用---select

與多進程和多線程技術相比,I/O多路複用技術的最大優勢是系統開銷小,系統不必創建進程/線程, 也不必維護這些進程/線程,從而大大減小了系統的開銷。 /* According to POSIX.1-2001 */        #inclu

原创 算法題目---撲克牌的順子

從撲克牌中隨機抽5張牌,判斷是不是一個順子,即這5張牌是不是連續的。 2~10爲數字本身,A爲1,J爲11,Q爲12,K爲13,而大,小王可以看成任意數字 #include <stdlib.h> #include <iostream>

原创 算法題目---圓圈中最後剩下的數字

0,1,2,3。。。n-1這n個數字排成一個圓圈,從數字0開始每次從這個圓圈裏刪除第m個數字。 求出這個圓圈裏剩下的最後一個數字。 #include<iostream> #include<stdio.h> #include<list>

原创 linux編程---進程通信中,利用socketpair實現子進程間通信

#include <sys/types.h>   #include <sys/socket.h>  #include <stdlib.h>   #

原创 算法題目---計算數字連續和

輸入一個正數s,打印出所有和爲s的連續正數序列(至少含有兩個數)。 void PrintContinuousSequence(int small,int big) {     for(int i = small;i <= big;++i

原创 算法題目---數組只出現一次數字

一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。 請寫程序找出這兩個只出現一次的數字。 要求時間複雜度是O(N),空間複雜度是O(1) #include<iostream> #include<stdio.h> using nam

原创 算法題目---和爲s的兩個數字vs和爲s的連續正數序列

輸入一個遞增排序的數組和一個數字s,在數組中查找兩個數,使得它們的各正好是s. 如果有多對數字的和等於s,輸出任意一對即可。 #include<iostream> #include<stdio.h> bool FindNumbersWi

原创 c語言---位域

所謂”位域“是把一個字節中的二進位劃分爲幾 個不同的區域, 並說明每個區域的位數。 每個域有一個域名,允許在程序中按域名進行操作。   它實際上是C

原创 linux編程---makefile---make 傳遞參數

#include<stdio.h> int main() {         int i = 9;         #ifdef DEBUG