原创 STL部分的實現

STL  == 》vector的部分現 vector類模板 template<typename T>class Cvector{public://公有方法typedef T value_type;//類型的萃取Cvector() //ve

原创 進程和線程

1、線程的模型 在Windows上,線程的模型大致爲: 一個內核線程調用了多個用戶線程,如果某一個用戶線程阻塞了, 導致內核線程也阻塞了,進而影響了其他線程也被阻塞了,又因爲 Windows上用戶線程特別多,所以Windows的線程調度

原创 1008:數組元素循環右移問題

一個數組A中存有N(N>0)個整數,在不允許使用另外數組的前提下,將每個整數循環向右移M(M>=0)個位置,即將A中的數據由(A0A1……AN-1)變換爲(AN-M …… AN-1 A0 A1……AN-M-1)(最後M個數循環移至最前面

原创 數據結構--鏈表

鏈表,一種常用的數據結構。 其優點是:可動態添加刪除,大小可變,插入、刪除操作方便,不會導致元素的移動,因爲元素增減,只需要調整指針;缺點是元素的查改,只能通過順次指針訪問,效率比較低。 節點的定義爲: struct listnod

原创 C++ 兩種設計模式:單例模式和觀察者監聽者模式

一、C++中有23種設計模式,大致分爲創建型模式,結構型模式以及行爲模式, 在這裏自己實現一下單例模式以及觀察者和監聽者模式 二、單例模式 我們通過維護一個static的成員變量來記錄唯一的對象實例,通過提供一個static的接口inst

原创 進程和線程的區別

知識點總結:   1、進程和線程的區別:進程官方的講進程是一個具有獨立功能的程序關於某個數據集合的一次運行活動。它可以申請和擁有系統資源,是一個動態的概念,是一個活動的實體。它不只是程序的代碼,還包括當前的活動,通過程序值的值和處理寄存器

原创 C++STL的簡單使用

#include <iostream>#include <vector>#include<deque>#include <list>#include<

原创 合法的括號序列

京東筆試第二道編程題:合法的括號序列 移除操作:1、移除第一個左括號                   2、移除任意一個右括號,保證移除以後還是一個合法的括號序列。 現在給一個序列,有多少種方法可以將序列移除爲空; 例如:()、(())

原创 1004:成績排名

讀入n名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。 其中姓名和學號均爲不超過10個字符的字符串,成績爲0到100之間的一個整數,這裏保證在一組測試用例中沒有兩個學生的成績是相同的。 輸出格式:對每個測試

原创 簡單排序

簡單排序算法的實現:冒泡排序、選擇排序、插入排序       冒泡排序:兩兩比較相鄰的數字,如果反序就交換,直到沒有反序的爲止。 1 void bubble_sort(int *br,int len) 2 { 3 for(

原创 C++面試題

C++中常見的面試題: 1、指針和數組的區別: 定義一個數組int arr[0 ] ={0};  arr[1] =20; 定義一個指針int a = 20; int *p = &a; 在彙編上: int arr[10] = {0}; 00

原创 可變長順序棧

棧(stack)大家一定不陌生,限定僅在表尾進行插入和刪除操作的線性表。 理解棧,首先要理解棧是線性表的特例,只是操作受限制了;棧的順序存儲結構也是線

原创 高級I/O框架庫libevent

libevent是基於reactor模式建立的,reactor由四部分構成: 句柄(文件描述符),時間多路分發器(I/O複用函數), 事件處理器(回調函數),reactor libevent有如下特點:跨平臺支持,同一事件源,線程安全;

原创 二分查找

二分查找 int binaryserach(int *arr,int len,inr key) { if(len<2 || arr[0] != key){ return -1; } int left = 0; int

原创 單元測試接入覆蓋率

1、添加pom文件,加入jacoco-maven-plugin <dependency> <groupId>org.jacoco</groupId> <artifactId>org.jacoco.agent</artif