最新網(wǎng)站筆試題目怎么做(8篇)

格式:DOC 上傳日期:2023-03-18 18:17:03
最新網(wǎng)站筆試題目怎么做(8篇)
時(shí)間:2023-03-18 18:17:03     小編:zxfb

在日常的學(xué)習(xí)、工作、生活中,肯定對(duì)各類(lèi)范文都很熟悉吧。范文書(shū)寫(xiě)有哪些要求呢?我們?cè)鯓硬拍軐?xiě)好一篇范文呢?下面是小編為大家收集的優(yōu)秀范文,供大家參考借鑒,希望可以幫助到有需要的朋友。

網(wǎng)站筆試題目怎么做篇一

尋找一些網(wǎng)站筆試題目,題型不限,

下面是由本站整理的一些與網(wǎng)站相關(guān)的筆試題目,請(qǐng)看

1.談?wù)剬?duì)mvc的認(rèn)識(shí)(1分)

mvc (model-view-controller)模式,即模型-試圖-控制器模式,其核心思想是將整個(gè)程序代碼分成相對(duì)獨(dú)立而又能協(xié)同工作的3個(gè)組成部分,具體的功能如下:

模型(model):業(yè)務(wù)邏輯層。實(shí)現(xiàn)具體的業(yè)務(wù)邏輯、狀態(tài)管理的功能。

視圖(view):表示層。就是與用戶實(shí)現(xiàn)交互的頁(yè)面,通常實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出功能。

控制器(controller):控制層。起到控制整個(gè)業(yè)務(wù)流程的作用,實(shí)現(xiàn)view層跟model層的協(xié)同工

2.寫(xiě)一個(gè)“標(biāo)準(zhǔn)”宏min,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。

#define min(a,b) ((a) <= (b) (a) : (b))

這個(gè)測(cè)試是為下面的目的而設(shè)的:

1). 標(biāo)識(shí)#define在宏中應(yīng)用的`基本知識(shí)。這是很重要的,因?yàn)橹钡角度?inline)操作符變?yōu)闃?biāo)準(zhǔn)c的一部分,宏是方便產(chǎn)生嵌入代碼的唯一方法,對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),為了能達(dá)到要求的性能,嵌入代碼經(jīng)常是必須的方法。

2). 三重條件操作符的知識(shí)。這個(gè)操作符存在c語(yǔ)言中的原因是它使得編譯器能產(chǎn)生比if-then-else更優(yōu)化的代碼,了解這個(gè)用法是很重要的,

3). 懂得在宏中小心地把參數(shù)用括號(hào)括起來(lái)

4). 我也用這個(gè)問(wèn)題開(kāi)始討論宏的副作用,例如:當(dāng)你寫(xiě)下面的代碼時(shí)會(huì)發(fā)生什么事?

least = min(*p++, b);

3. 預(yù)處理器標(biāo)識(shí)#error的目的是什么?

如果你不知道答案,請(qǐng)看參考文獻(xiàn)1。這問(wèn)題對(duì)區(qū)分一個(gè)正常的伙計(jì)和一個(gè)書(shū)呆子是很有用的。只有書(shū)呆子才會(huì)讀c語(yǔ)言課本的附錄去找出象這種

問(wèn)題的答案。當(dāng)然如果你不是在找一個(gè)書(shū)呆子,那么應(yīng)試者最好希望自己不要知道答案。

死循環(huán)(infinite loops)

4. 嵌入式系統(tǒng)中經(jīng)常要用到無(wú)限循環(huán),你怎么樣用c編寫(xiě)死循環(huán)呢?

這個(gè)問(wèn)題用幾個(gè)解決方案。我首選的方案是:

while(1) { }

一些程序員更喜歡如下方案:

for(;;) { }

這個(gè)實(shí)現(xiàn)方式讓我為難,因?yàn)檫@個(gè)語(yǔ)法沒(méi)有確切表達(dá)到底怎么回事。如果一個(gè)應(yīng)試者給出這個(gè)作為方案,我將用這個(gè)作為一個(gè)機(jī)會(huì)去探究他們這樣做的基本原理。如果他們的基本答案是:“我被教著這樣做,但從沒(méi)有想到過(guò)為什么?!边@會(huì)給我留下一個(gè)壞印象。

第三個(gè)方案是用 goto

loop:

...

goto loop;

應(yīng)試者如給出上面的方案,這說(shuō)明或者他是一個(gè)匯編語(yǔ)言程序員(這也許是好事)或者他是一個(gè)想進(jìn)入新領(lǐng)域的basic/fortran程序員。

數(shù)據(jù)聲明(data declarations)

網(wǎng)站筆試題目怎么做篇二

電子商務(wù)網(wǎng)站筆試題目

某法院審理一起盜竊案件,某村的甲、乙、丙三人作為嫌疑犯被押上法庭,審問(wèn)開(kāi)始了。法官先問(wèn)甲:“你是怎樣作案的?”由于甲說(shuō)的是方言,法官聽(tīng)不懂。于是,法官就間乙和丙:“剛才甲是如何回答我的問(wèn)題的?”乙說(shuō):“甲的意思是,他并不是盜竊犯?!北f(shuō):“甲剛才招供了,他承認(rèn)自己是盜竊犯?!狈ü俾?tīng)完了乙和丙的話之后,馬上做出判斷:釋放乙,逮捕丙入獄。事實(shí)證明法官的判斷是正確的。

法官做出準(zhǔn)確判斷最不可能依據(jù)的假定是什么?

1. 初審時(shí),在沒(méi)有脅迫的情況下,甲不論是否是盜竊犯,他總會(huì)回答說(shuō):我不是盜竊犯,

2. 初審時(shí),在沒(méi)有脅迫的情況下,說(shuō)真話的不會(huì)是盜竊犯,而說(shuō)假話的是盜竊犯。

3. 丙在轉(zhuǎn)述甲的回答中說(shuō)了假話。

4. 據(jù)某村村民反映,丙以前曾多次盜竊人家的財(cái)物。

電冰箱的問(wèn)世引起了冰市場(chǎng)的崩潰,以前人們用冰來(lái)保鮮食物,現(xiàn)在電冰箱替代了冰的作用。同樣道理,由于生物工程的成果,研究出能抵抗害蟲(chóng)的農(nóng)作物,則會(huì)引起什么后果?

以下哪項(xiàng)是上述問(wèn)題的最好回答?

1. 增加種子成本。

2. 農(nóng)田的價(jià)值下降。

3. 化學(xué)農(nóng)藥的需求減少。

4. 飼養(yǎng)家畜的農(nóng)民數(shù)量下降。

不可能所有的花都結(jié)果。

以下哪項(xiàng)斷定的含義,與上述斷定最為接近?

1. 可能所有的花都不結(jié)果。

2. 可能有的花不結(jié)果。

3. 可能有的花結(jié)果。

4. 必然有的花不結(jié)果。

網(wǎng)站筆試題目怎么做篇三

選擇題

1,兩臺(tái)電腦在局域網(wǎng)中,機(jī)器為千兆網(wǎng)卡,一臺(tái)作服務(wù)器里面有一張網(wǎng)頁(yè)為1k字節(jié),問(wèn)另一臺(tái)下載這個(gè)網(wǎng)頁(yè)的速度,

我答:我不知道1k是指1024還是1000…不過(guò)按我的算法沒(méi)區(qū)別,1000 000000/8/1k

我選了10 000張/秒

2,單鏈表插入一個(gè)節(jié)點(diǎn)的問(wèn)題。在p指向的節(jié)點(diǎn)后插入一個(gè)q指向的`節(jié)點(diǎn)。

我答:q->next=p->next;p->next=q;

有一題,入棧序列1,2,3,4,5,..,n,第一個(gè)出棧的是n,問(wèn)第i個(gè)出棧的是多少。

我答:n-i+1

最后一題,給中綴和后綴表達(dá)式,求前綴表達(dá)式,

填空題

1:數(shù)組(a1,a2,a3,a4..,an),刪除任意一個(gè)的概率相同,問(wèn)平均刪除一個(gè)要移動(dòng)多少個(gè)。

我答:(n-1)/2

2:一個(gè)程序填空,程序大意是在數(shù)組里面找第二大的數(shù)。

注:不難

3:大致如下一個(gè)程序片段:

void xxx(x)

{

intcountx=0;

while(x)

{

countx++;

x=x&(x-1);

}

cout<

}

問(wèn)xxx(9999)輸出什么。

我答:8,記得做acm的時(shí)候碰到過(guò)那個(gè)式子,貌似關(guān)于排列的,具體意思忘記了,搞一下可以明白是x變成二進(jìn)制,里面有多少個(gè)1就是答案。

網(wǎng)站筆試題目怎么做篇四

網(wǎng)易網(wǎng)站測(cè)試工程師筆試題目分享

霸筆,晚進(jìn)場(chǎng)半小時(shí),從四樓打算走人的時(shí)候在二樓又混進(jìn)了一個(gè)考場(chǎng),最后一份測(cè)試試卷。不多,一頁(yè)紙,兩面未滿。寫(xiě)了一個(gè)小時(shí)搞定。題我都能記下來(lái)了……

1.編程:費(fèi)不垃圾數(shù)列,f(0) = 0, f(1) = 1, f(n) = f(n-1) + f(n-2) n>1。給定n,求f(n),要求越快越好。

好吧,現(xiàn)在想想,我沒(méi)有考慮到返回值越界問(wèn)題。ft,該死的越界。

2.給字符串str,將其倒序。例如“abcdef”變?yōu)椤癴edcba”,要求空間復(fù)雜度為o(1).

3.寫(xiě)出下述協(xié)議的端口號(hào): http 80 pop3 110 ftp 21

4.列舉寫(xiě)黑盒測(cè)試用例的幾種方法,至少三個(gè): 等價(jià)類(lèi),邊界值,不會(huì)了

5.軟件測(cè)試在軟件工程中的位置

6.白盒測(cè)試的覆蓋形式很多,從覆蓋范圍的.弱到強(qiáng)來(lái)列舉出來(lái)

7.讓你作為項(xiàng)目測(cè)試負(fù)責(zé)人,說(shuō)明從需求開(kāi)始到項(xiàng)目上線所要做的全部工作(參考網(wǎng)易有道面試中的回答)

8.怎么做瀏覽器兼容性測(cè)試?怎么測(cè)試亂碼問(wèn)題?

內(nèi)核瀏覽器+不同版本flash ie6、7、8,360等

b.非ie內(nèi)核瀏覽器+不同版本flash chrome、ff等

亂碼問(wèn)題要考慮編碼方式

a.單字節(jié)編碼

b.雙字節(jié)編碼

-8、gbk等編碼的交界產(chǎn)生的二義性

列舉常見(jiàn)編碼問(wèn)題作為case,供日后測(cè)試便利使用,

9.一段java程序,寫(xiě)測(cè)試case,來(lái)滿足條件覆蓋。

其實(shí)跟java沒(méi)太大關(guān)系,c c++都差不多,我大概寫(xiě)一下題目:

我用了等價(jià)類(lèi)和邊界值,level要注意的值是0 1 2 10 11,grade要注意的是0 1 2 3 5 6。分為能否進(jìn)入第一個(gè)if;如果進(jìn)入了第一個(gè)if,能否進(jìn)入第二個(gè)if。大概寫(xiě)了15個(gè)case。

網(wǎng)站筆試題目怎么做篇五

新浪網(wǎng)站編輯筆試題目

如果相關(guān)成為新浪的網(wǎng)站編輯,那么下面的筆試題目要回做才行,下面來(lái)看看這些題的難度高不高。

一、選擇題

(包括gdp,邱興華殺人事件發(fā)生時(shí)間,孫志剛事件發(fā)生時(shí)間,現(xiàn)在的.牛市,11年新上市的銀行有幾家,cnni是在哪年,中國(guó)入世哪年,最近的青奧會(huì)在哪年等相關(guān)內(nèi)容)

二、論述題

1.一個(gè)優(yōu)秀的網(wǎng)絡(luò)編輯要具備怎樣的特長(zhǎng)?

2.請(qǐng)列舉三個(gè)你??吹木W(wǎng)絡(luò)媒體和傳統(tǒng)媒體,比較它們的異同.

三、專(zhuān)業(yè)題

1.請(qǐng)列舉5個(gè)你最常關(guān)注的博客,寫(xiě)出其博客特點(diǎn)

2.寫(xiě)出10個(gè)網(wǎng)絡(luò)名人,其出名原因

3.寫(xiě)出10個(gè)你熟悉的網(wǎng)絡(luò)寫(xiě)手或網(wǎng)絡(luò)原創(chuàng)作家,寫(xiě)出其語(yǔ)言風(fēng)格

4.寫(xiě)出幾個(gè)你最常關(guān)注的博客的網(wǎng)站,并寫(xiě)出他們各自的優(yōu)勢(shì)

5.你是否經(jīng)常寫(xiě)博客,寫(xiě)出你博客的地址,更新頻率以及博客的特點(diǎn)

更多相關(guān)的筆試題目推薦,大家敬請(qǐng)繼續(xù)閱讀:電子商務(wù)筆試題德?tīng)柛C(jī)械類(lèi)筆試題目長(zhǎng)虹筆試題目

網(wǎng)站筆試題目怎么做篇六

測(cè)試工程師具有開(kāi)始工作即進(jìn)入大、中型軟件企業(yè),后期轉(zhuǎn)行也容易的特點(diǎn)。本文將介紹網(wǎng)易網(wǎng)站測(cè)試工程師筆試題目。

網(wǎng)易網(wǎng)站測(cè)試工程師筆試題目:

1.編程:費(fèi)不垃圾數(shù)列,f(0) = 0, f(1) = 1, f(n) = f(n-1) + f(n-2) n>1。給定n,求f(n),要求越快越好。

好吧,現(xiàn)在想想,我沒(méi)有考慮到返回值越界問(wèn)題。ft,該死的越界。

2.給字符串str,將其倒序。例如“abcdef”變?yōu)椤癴edcba”,要求空間復(fù)雜度為o(1).

3.寫(xiě)出下述協(xié)議的端口號(hào): http 80 pop3 110 ftp 21

4.列舉寫(xiě)黑盒測(cè)試用例的幾種方法,至少三個(gè): 等價(jià)類(lèi),邊界值,不會(huì)了

網(wǎng)易網(wǎng)站測(cè)試工程師筆試題目分享網(wǎng)易網(wǎng)站測(cè)試工程師筆試題目分享

5.軟件測(cè)試在軟件工程中的位置

6.白盒測(cè)試的覆蓋形式很多,從覆蓋范圍的弱到強(qiáng)來(lái)列舉出來(lái)

7.讓你作為項(xiàng)目測(cè)試負(fù)責(zé)人,說(shuō)明從需求開(kāi)始到項(xiàng)目上線所要做的全部工作

8.怎么做瀏覽器兼容性測(cè)試?怎么測(cè)試亂碼問(wèn)題?

內(nèi)核瀏覽器+不同版本flash ie6、7、8,360等

b.非ie內(nèi)核瀏覽器+不同版本flash chrome、ff等

亂碼問(wèn)題要考慮編碼方式

a.單字節(jié)編碼

b.雙字節(jié)編碼

-8、gbk等編碼的交界產(chǎn)生的二義性

列舉常見(jiàn)編碼問(wèn)題作為case,供日后測(cè)試便利使用。

9.一段java程序,寫(xiě)測(cè)試case,來(lái)滿足條件覆蓋。

其實(shí)跟java沒(méi)太大關(guān)系,c c++都差不多,我大概寫(xiě)一下題目:

我用了等價(jià)類(lèi)和邊界值,level要注意的值是0 1 2 10 11,grade要注意的是0 1 2 3 5 6。分為能否進(jìn)入第一個(gè)if;如果進(jìn)入了第一個(gè)if,能否進(jìn)入第二個(gè)if。大概寫(xiě)了15個(gè)case。

【職業(yè)前景】

在外界環(huán)境大好的情況下,軟件測(cè)試卻面臨著自身的嚴(yán)峻考驗(yàn)――人才緊缺。在國(guó)外,一般軟件測(cè)試人員與軟件開(kāi)發(fā)人員的崗位設(shè)置比例是1:1,像微軟在開(kāi)發(fā)windows時(shí)測(cè)試開(kāi)發(fā)人員比例高到1.7:1,由此可見(jiàn)軟件測(cè)試崗位重要性的一般。據(jù)前程無(wú)憂調(diào)查顯示,國(guó)內(nèi)120多萬(wàn)軟件從業(yè)者中,真正能擔(dān)當(dāng)測(cè)試職位的不足5萬(wàn),人才缺口已超20萬(wàn),并隨需求逐年增長(zhǎng)。

軟件測(cè)試人才需求量的加大,除了受產(chǎn)業(yè)先行的波及外,主要是受教育滯后的影響。由于及時(shí)捕捉到市場(chǎng)的需求,部分it職業(yè)培訓(xùn)機(jī)構(gòu)率先駛?cè)霚y(cè)試培養(yǎng)的藍(lán)海,緊跟發(fā)展趨勢(shì),開(kāi)設(shè)了一系列科學(xué)完善的課程體系,為軟件企業(yè)培養(yǎng)了眾多專(zhuān)業(yè)軟件測(cè)試工程師,成為人才培養(yǎng)的主力軍。企業(yè)可通過(guò)內(nèi)部培訓(xùn)、引進(jìn)人才等方式來(lái)培育人才,但受人力成本的限制,這些方式?jīng)]有大規(guī)模普及。另外,國(guó)內(nèi)部分高等院校也開(kāi)始著手準(zhǔn)備,召開(kāi)軟件測(cè)試教學(xué)研討會(huì),籌劃專(zhuān)業(yè)開(kāi)設(shè)的相關(guān)事宜。

網(wǎng)站筆試題目怎么做篇七

1、有一個(gè)名人和很多平民在一塊,平民都認(rèn)識(shí)這個(gè)名人,但是這個(gè)名人不認(rèn)識(shí)任何一個(gè)平民,任意兩個(gè)平民之間是否認(rèn)識(shí)是未知的,請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,快速找個(gè)這個(gè)人中的那個(gè)名人。 已知已經(jīng)實(shí)現(xiàn)了一個(gè)函數(shù) bool know(int a,int b) 這個(gè)函數(shù)返回true的時(shí)候,表明a認(rèn)識(shí)b,返回false的時(shí)候表明a不認(rèn)識(shí)b。

思路:首先將n個(gè)人分為n/2組,每一組有2個(gè)人,然后每個(gè)組的兩個(gè)人調(diào)用這個(gè)know函數(shù),假設(shè)為know(a,b),返回true的時(shí)候說(shuō)明a認(rèn)識(shí)b,則a肯定不是名人,a可以排除掉了,依次類(lèi)推,每個(gè)組都調(diào)用這個(gè)函數(shù)依次,那么n個(gè)人中就有n/2個(gè)人被排除掉了,數(shù)據(jù)規(guī)模將為n/2。同理在剩下的n/2個(gè)人中在使用這個(gè)方法,那么規(guī)模就會(huì)將為n/4,這樣所有的遍歷次數(shù)為n/2+n/4+n/8+........ 這個(gè)一個(gè)等比數(shù)列,時(shí)間復(fù)雜度為o(n)。

2、進(jìn)程切換需要注意哪些問(wèn)題?

保存處理器pc寄存器的值到被中止進(jìn)程的私有堆棧; 保存處理器psw寄存器的值到被中止進(jìn)程的私有堆棧; 保存處理器sp寄存器的值到被中止進(jìn)程的進(jìn)程控制塊;

保存處理器其他寄存器的值到被中止進(jìn)程的私有堆棧; 自待運(yùn)行進(jìn)程的進(jìn)程控制塊取sp值并存入處理器的寄存器sp; 自待運(yùn)行進(jìn)程的私有堆?;謴?fù)處理器各寄存器的值;

自待運(yùn)行進(jìn)程的私有堆棧中彈出psw值并送入處理器的psw; 自待運(yùn)行進(jìn)程的私有堆棧中彈出pc值并送入處理器的pc。

3、輸入一個(gè)升序數(shù)組,然后在數(shù)組中快速尋找兩個(gè)數(shù)字,其和等于一個(gè)給定的值。

這個(gè)編程之美上面有這個(gè)題目的,很簡(jiǎn)單的,用兩個(gè)指針一個(gè)指向數(shù)組前面,一個(gè)指向數(shù)組的后面,遍歷一遍就可以了。

4、判斷一個(gè)自然數(shù)是否是某個(gè)數(shù)的平方。當(dāng)然不能使用開(kāi)方運(yùn)算。

方法1:

遍歷從1到n的數(shù)字,求取平方并和n進(jìn)行比較。

如果平方小于n,則繼續(xù)遍歷;如果等于n,則成功退出;如果大于n,則失敗退出。

復(fù)雜度為o(n^0.5)。

方法2:

使用二分查找法,對(duì)1到n之間的數(shù)字進(jìn)行判斷。

復(fù)雜度為o(log n)。

方法3:

由于

(n+1)^2

=n^2 + 2n + 1,

= ...

= 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1)

注意到這些項(xiàng)構(gòu)成了等差數(shù)列(每項(xiàng)之間相差2)。

所以我們可以比較 n-1, n - 1 - 3, n - 1 - 3 - 5 ... 和0的關(guān)系。

如果大于0,則繼續(xù)減;如果等于0,則成功退出;如果小于 0,則失敗退出。

復(fù)雜度為o(n^0.5)。不過(guò)方法3中利用加減法替換掉了方法1中的乘法,所以速度會(huì)更快些。

例如:3^2 = 9 = 1 + 2*1+1 + 2*2+1 = 1 + 3 + 5

4^2 = 16 = 1 + 2*1 + 1 + 2*2+1 + 2*3+1

int square(int n)

{

int i = 1;

n = n - i;

while( n >0 )

{

i += 2;

n -= i;

}

if( n == 0 ) //是某個(gè)數(shù)的平方

return 1;

else //不是某個(gè)數(shù)的平方

return 0;

}

網(wǎng)站筆試題目怎么做篇八

一、算法設(shè)計(jì)

1、設(shè)rand(s,t)返回[s,t]之間的隨機(jī)小數(shù),利用該函數(shù)在一個(gè)半徑為r的圓內(nèi)找隨機(jī)n個(gè)點(diǎn),并給出時(shí)間復(fù)雜度分析。

思路:這個(gè)使用數(shù)學(xué)中的極坐標(biāo)來(lái)解決,先調(diào)用[s1,t1]隨機(jī)產(chǎn)生一個(gè)數(shù)r,歸一化后乘以半徑,得到r*(r-s1)/(t1-s1),然后在調(diào)用[s2,t2]隨機(jī)產(chǎn)生一個(gè)數(shù)a,歸一化后得到角度:360*(a-s2)/(t2-s2)

2、為分析用戶行為,系統(tǒng)常需存儲(chǔ)用戶的一些query,但因query非常多,故系統(tǒng)不能全存,設(shè)系統(tǒng)每天只存m個(gè)query,現(xiàn)設(shè)計(jì)一個(gè)算法,對(duì)用戶請(qǐng)求的query進(jìn)行隨機(jī)選擇m個(gè),請(qǐng)給一個(gè)方案,使得每個(gè)query被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用戶的總請(qǐng)求量。

思路:如果用戶查詢(xún)的數(shù)量小于m,那么直接就存起來(lái)。如果用戶查詢(xún)的數(shù)量大于m,假設(shè)為m+i,那么在1-----m+i之間隨機(jī)產(chǎn)生一個(gè)數(shù),如果選擇的是前面m條查詢(xún)進(jìn)行存取,那么概率為m/(m+i),如果選擇的是后面i條記錄中的查詢(xún),那么用這個(gè)記錄來(lái)替換前面m條查詢(xún)記錄的概率為m/(m+i)*(1-1/m)=(m-1)/(m+i),當(dāng)查詢(xún)記錄量很大的時(shí)候,m/(m+i)== (m-1)/(m+i),所以每個(gè)query被抽中的概率是相等的。

3、c++ stl中vector的相關(guān)問(wèn)題:

(1)、調(diào)用push_back時(shí),其內(nèi)部的內(nèi)存分配是如何進(jìn)行的?

(2)、調(diào)用clear時(shí),內(nèi)部是如何具體實(shí)現(xiàn)的?若想將其內(nèi)存釋放,該如何操作?

vector的工作原理是系統(tǒng)預(yù)先分配一塊capacity大小的空間,當(dāng)插入的數(shù)據(jù)超過(guò)這個(gè)空間的時(shí)候,這塊空間會(huì)讓某種方式擴(kuò)展,但是你刪除數(shù)據(jù)的時(shí)候,它卻不會(huì)縮小。

vector為了防止大量分配連續(xù)內(nèi)存的開(kāi)銷(xiāo),保持一塊默認(rèn)的尺寸的內(nèi)存,clear只是清數(shù)據(jù)了,未清內(nèi)存,因?yàn)関ector的capacity容量未變化,系統(tǒng)維護(hù)一個(gè)的默認(rèn)值。

有什么方法可以釋放掉vector中占用的全部?jī)?nèi)存呢?

標(biāo)準(zhǔn)的解決方法如下

template < class t >

void clearvector( vector< t >& vt )

{

vector< t >vttemp;

( vt );

}

事實(shí)上,vector根本就不管內(nèi)存,它只是負(fù)責(zé)向內(nèi)存管理框架acquire/release內(nèi)存,內(nèi)存管理框架如果發(fā)現(xiàn)內(nèi)存不夠了,就malloc,但是當(dāng)vector釋放資源的時(shí)候(比如destruct), stl根本就不調(diào)用free以減少內(nèi)存,因?yàn)閮?nèi)存分配在stl的底層:stl假定如果你需要更多的資源就代表你以后也可能需要這么多資源(你的list, hashmap也是用這些內(nèi)存),所以就沒(méi)必要不停地malloc/free。如果是這個(gè)邏輯的話這可能是個(gè)trade-off

一般的stl內(nèi)存管理器allocator都是用內(nèi)存池來(lái)管理內(nèi)存的,所以某個(gè)容器申請(qǐng)內(nèi)存或釋放內(nèi)存都只是影響到內(nèi)存池的剩余內(nèi)存量,而不是真的把內(nèi)存歸還給系統(tǒng)。這樣做一是為了避免內(nèi)存碎片,二是提高了內(nèi)存申請(qǐng)和釋放的效率――不用每次都在系統(tǒng)內(nèi)存里尋找一番。

二、系統(tǒng)設(shè)計(jì)

正常用戶端每分鐘最多發(fā)一個(gè)請(qǐng)求至服務(wù)端,服務(wù)端需做一個(gè)異??蛻舳诵袨榈倪^(guò)濾系統(tǒng),設(shè)服務(wù)器在某一刻收到客戶端a的一個(gè)請(qǐng)求,則1分鐘內(nèi)的客戶端任何其它請(qǐng)求都需要被過(guò)濾,現(xiàn)知每一客戶端都有一個(gè)ipv6地址可作為其id,客戶端個(gè)數(shù)太多,以至于無(wú)法全部放到單臺(tái)服務(wù)器的內(nèi)存hash表中,現(xiàn)需簡(jiǎn)單設(shè)計(jì)一個(gè)系統(tǒng),使用支持高效的過(guò)濾,可使用多臺(tái)機(jī)器,但要求使用的機(jī)器越少越好,請(qǐng)將關(guān)鍵的設(shè)計(jì)和思想用圖表和代碼表現(xiàn)出來(lái)。

三、求一個(gè)全排列函數(shù):

如p([1,2,3])輸出:

[123]、[132]、[213]、[231]、[321]、[323]

求一個(gè)組合函數(shù)

如p([1,2,3])輸出:

[1]、[2]、[3]、[1,2]、[2,3]、[1,3]、[1,2,3]

這兩問(wèn)可以用偽代碼。

【本文地址:http://www.aiweibaby.com/zuowen/1684792.html】

全文閱讀已結(jié)束,如果需要下載本文請(qǐng)點(diǎn)擊

下載此文檔