360


360真題

http://discuss.acmcoder.com/topic/58cd31e475bf559a0653f98f


http://www.reibang.com/p/a3ffbc72d346

http://blog.csdn.net/cmershen/article/details/63686913


vector

1.push_back? 在數(shù)組的最后添加一個(gè)數(shù)據(jù)

2.pop_back??? 去掉數(shù)組的最后一個(gè)數(shù)據(jù)

3.at??????????????? 得到編號(hào)位置的數(shù)據(jù)

4.begin?????????? 得到數(shù)組頭的指針

5.end???????????? 得到數(shù)組的最后一個(gè)單元+1的指針

6.front??????? 得到數(shù)組頭的引用

7.back??????????? 得到數(shù)組的最后一個(gè)單元的引用

8.max_size???? 得到vector最大可以是多大

9.capacity?????? 當(dāng)前vector分配的大小

10.size?????????? 當(dāng)前使用數(shù)據(jù)的大小

11.resize???????? 改變當(dāng)前使用數(shù)據(jù)的大小馋贤,如果它比當(dāng)前使用的大幕垦,者填充默認(rèn)值

12.reserve????? 改變當(dāng)前vecotr所分配空間的大小

13.erase???????? 刪除指針指向的數(shù)據(jù)項(xiàng)

14.clear????????? 清空當(dāng)前的vector

15.rbegin??????? 將vector反轉(zhuǎn)后的開(kāi)始指針?lè)祷?其實(shí)就是原來(lái)的end-1)

16.rend????????? 將vector反轉(zhuǎn)構(gòu)的結(jié)束指針?lè)祷?其實(shí)就是原來(lái)的begin-1)

17.empty??????? 判斷vector是否為空

18.swap???????? 與另一個(gè)vector交換數(shù)據(jù)

3.2 ?詳細(xì)的函數(shù)實(shí)現(xiàn)功能:其中vector c.

c.clear()?????????移除容器中所有數(shù)據(jù)睦袖。

c.empty()?????????判斷容器是否為空积糯。

c.erase(pos)????????刪除pos位置的數(shù)據(jù)

c.erase(beg,end)?刪除[beg,end)區(qū)間的數(shù)據(jù)

c.front()?????????傳回第一個(gè)數(shù)據(jù)。

c.insert(pos,elem)??在pos位置插入一個(gè)elem拷貝

c.pop_back()?????刪除最后一個(gè)數(shù)據(jù)湃累。

c.push_back(elem)?在尾部加入一個(gè)數(shù)據(jù)栅干。

c.resize(num)?????重新設(shè)置該容器的大小

c.size()?????????回容器中實(shí)際數(shù)據(jù)的個(gè)數(shù)。

c.begin()???????????返回指向容器第一個(gè)元素的迭代器

c.end()?????????????返回指向容器最后一個(gè)元素的迭代器


list

(http://blog.csdn.net/lskyne/article/details/10418823)

Lists將元素按順序儲(chǔ)存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機(jī)訪(fǎng)問(wèn)卻比較慢.

assign() 給list賦值

back() 返回最后一個(gè)元素

begin() 返回指向第一個(gè)元素的迭代器

clear() 刪除所有元素

empty() 如果list是空的則返回true

end() 返回末尾的迭代器

erase() 刪除一個(gè)元素

front() 返回第一個(gè)元素

get_allocator() 返回list的配置器

insert() 插入一個(gè)元素到list中

max_size() 返回list能容納的最大元素?cái)?shù)量

merge() 合并兩個(gè)list

pop_back() 刪除最后一個(gè)元素

pop_front() 刪除第一個(gè)元素

push_back() 在list的末尾添加一個(gè)元素

push_front() 在list的頭部添加一個(gè)元素

rbegin() 返回指向第一個(gè)元素的逆向迭代器

remove() 從list刪除元素

remove_if() 按指定條件刪除元素

rend() 指向list末尾的逆向迭代器

resize() 改變list的大小

reverse() 把list的元素倒轉(zhuǎn)

size() 返回list中的元素個(gè)數(shù)

sort() 給list排序

splice() 合并兩個(gè)list

swap() 交換兩個(gè)list

unique() 刪除list中重復(fù)的元素


dequeue

C++ Deque(雙向隊(duì)列)

是一種優(yōu)化了的拓诸、對(duì)序列兩端元素進(jìn)行添加和刪除操作的基本序列容器侵佃。它允許較為快速地隨機(jī)訪(fǎng)問(wèn),但它不像vector把所有的對(duì)象保存在一塊連續(xù)的內(nèi)存塊奠支,而是采用多個(gè)連續(xù)的存儲(chǔ)塊馋辈,并且在一個(gè)映射結(jié)構(gòu)中保存對(duì)這些塊及其順序的跟蹤。向deque兩端添加或刪除元素的開(kāi)銷(xiāo)很小倍谜。它不需要重新分配空間迈螟,所以向末端增加元素比vector更有效。

實(shí)際上尔崔,deque是對(duì)vector和list優(yōu)缺點(diǎn)的結(jié)合答毫,它是處于兩者之間的一種容器。

Deque的特點(diǎn):

(1)隨機(jī)訪(fǎng)問(wèn)方便季春,即支持[ ]操作符和vector.at()洗搂,但性能沒(méi)有vector好;

(2)可以在內(nèi)部進(jìn)行插入和刪除操作载弄,但性能不及l(fā)ist耘拇;

(3)可以在兩端進(jìn)行push、pop宇攻;

(4)相對(duì)于verctor占用更多的內(nèi)存惫叛。

雙向隊(duì)列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)尺碰。

1.Constructors創(chuàng)建一個(gè)新雙向隊(duì)列

語(yǔ)法:

deque();//創(chuàng)建一個(gè)空雙向隊(duì)列

deque( size_type size );//創(chuàng)建一個(gè)大小為size的雙向隊(duì)列

deque( size_type num, const TYPE &val ); //放置num個(gè)val的拷貝到隊(duì)列中

deque( const deque &from );//從from創(chuàng)建一個(gè)內(nèi)容一樣的雙向隊(duì)列

deque( input_iterator start, input_iterator end );

// start和end -創(chuàng)建一個(gè)隊(duì)列挣棕,保存從start到end的元素。

2.Operators比較和賦值雙向隊(duì)列

//可以使用[]操作符訪(fǎng)問(wèn)雙向隊(duì)列中單個(gè)的元素

3.assign()設(shè)置雙向隊(duì)列的值

語(yǔ)法:

void assign( input_iterator start, input_iterator end);

//start和end指示的范圍為雙向隊(duì)列賦值

void assign( Size num, const TYPE &val );//設(shè)置成num個(gè)val亲桥。

4.at()返回指定的元素

語(yǔ)法:

reference at( size_type pos );返回一個(gè)引用洛心,指向雙向隊(duì)列中位置pos上的元素

5.back()返回最后一個(gè)元素

語(yǔ)法:

reference back();//返回一個(gè)引用,指向雙向隊(duì)列中最后一個(gè)元素

6.begin()返回指向第一個(gè)元素的迭代器

語(yǔ)法:

iterator begin();//返回一個(gè)迭代器题篷,指向雙向隊(duì)列的第一個(gè)元素

7.clear()刪除所有元素

8.empty()返回真如果雙向隊(duì)列為空

9.end()返回指向尾部的迭代器

10.erase()刪除一個(gè)元素

語(yǔ)法:

iterator erase( iterator pos ); //刪除pos位置上的元素

iterator erase( iterator start, iterator end ); //刪除start和end之間的所有元素

//返回指向被刪除元素的后一個(gè)元素

11.front()返回第一個(gè)元素的引用

12.get_allocator()返回雙向隊(duì)列的配置器

13.insert()插入一個(gè)元素到雙向隊(duì)列中

語(yǔ)法:

iterator insert( iterator pos, size_type num, const TYPE &val ); //pos前插入num個(gè)val值

void insert( iterator pos, input_iterator start, input_iterator end );

//插入從start到end范圍內(nèi)的元素到pos前面

14.max_size()返回雙向隊(duì)列能容納的最大元素個(gè)數(shù)

15.pop_back()刪除尾部的元素

16.pop_front()刪除頭部的元素

17.push_back()在尾部加入一個(gè)元素

18.push_front()在頭部加入一個(gè)元素

19.rbegin()返回指向尾部的逆向迭代器

20.rend()返回指向頭部的逆向迭代器

21.resize()改變雙向隊(duì)列的大小

22.size()返回雙向隊(duì)列中元素的個(gè)數(shù)

23.swap()和另一個(gè)雙向隊(duì)列交換元素

語(yǔ)法:

void swap( deque &target );//交換target和現(xiàn)雙向隊(duì)列中元素


queue词身、priority_queue

(http://blog.csdn.net/chao_xun/article/details/8037438)

一.queue模版類(lèi)的定義在頭文件中。

queue與stack模版非常類(lèi)似番枚,queue模版也需要定義兩個(gè)模版參數(shù)法严,一個(gè)是元素類(lèi)型,一個(gè)是容器類(lèi)型葫笼,元素類(lèi)型是必要的深啤,容器類(lèi)型是可選的,默認(rèn)為dqueue類(lèi)型路星。

定義queue對(duì)象的示例代碼如下:

queueq1;

queueq2;

queue的基本操作有:

1.入隊(duì):如q.push(x):將x元素接到隊(duì)列的末端溯街;

2.出隊(duì):如q.pop() 彈出隊(duì)列的第一個(gè)元素,并不會(huì)返回元素的值;

3,訪(fǎng)問(wèn)隊(duì)首元素:如q.front()

4,訪(fǎng)問(wèn)隊(duì)尾元素呈昔,如q.back();

5,訪(fǎng)問(wèn)隊(duì)中的元素個(gè)數(shù)挥等,如q.size();

二.優(yōu)先隊(duì)列

在頭文件中,還定義了一個(gè)非常有用的模版類(lèi)priority_queue(優(yōu)先隊(duì)列)堤尾,優(yōu)先隊(duì)列與隊(duì)列的差別在于優(yōu)先隊(duì)列不是按照入隊(duì)的順序出隊(duì)肝劲,而是按照隊(duì)列中元素的優(yōu)先權(quán)順序出隊(duì)(默認(rèn)為大者優(yōu)先,也可以通過(guò)指定算子來(lái)指定自己的優(yōu)先順序)郭宝。

priority_queue模版類(lèi)有三個(gè)模版參數(shù)辞槐,元素類(lèi)型,容器類(lèi)型粘室,比較算子催蝗。其中后兩個(gè)都可以省略,默認(rèn)容器為vector育特,默認(rèn)算子為less,即小的往前排先朦,大的往后排(出隊(duì)時(shí)序列尾的元素出隊(duì))缰冤。

定義priority_queue對(duì)象的示例代碼如下:

priority_queueq1;

priority_queue >q2;

priority_queue,greater >q3;//定義小的先出隊(duì)

priority_queue的基本操作均與queue相同

初學(xué)者在使用priority_queue時(shí)喳魏,最困難的可能就是如何定義比較算子了棉浸。如果是基本數(shù)據(jù)類(lèi)型,或已定義了比較運(yùn)算符的類(lèi)刺彩,可以直接用STL的less算子和greater算子——默認(rèn)為使用less算子迷郑,即小的往前排,大的先出隊(duì)创倔。如果要定義自己的比較算子嗡害,方法有多種,這里介紹其中的一種:重載比較運(yùn)算符畦攘。優(yōu)先隊(duì)列試圖將兩個(gè)元素x和y代入比較運(yùn)算符(對(duì)less算子霸妹,調(diào)用xy),若結(jié)果為真知押,則x排在y前面叹螟,y將先于x出隊(duì),反之台盯,則將y排在x前面罢绽,x將先出隊(duì)。


大數(shù)組

你這個(gè)數(shù)組申明在函數(shù)內(nèi)部静盅,屬于局部變量良价,存放在了棧上,

看看數(shù)組占用的內(nèi)存大小:1000000=1000*1000然后乘以int型數(shù)據(jù)長(zhǎng)度

1000*1000*4byte約等于4M,

而棧的默認(rèn)內(nèi)存空間為1M左右棚壁,所以會(huì)導(dǎo)致內(nèi)存溢出

解決這個(gè)問(wèn)題杯矩,可以將數(shù)組申明在全局存儲(chǔ)區(qū)或堆上即可

方法一:

? ? 在VC的Project ? setting里的link選項(xiàng)卡里把棧開(kāi)大一點(diǎn)(windows里默認(rèn)是4M)

方法二:

? ? 聲明成全局或static的,這兩種變量不壓棧,想開(kāi)多大都可以

方法三:

int ? *A ? = ? new ? int[90000];

.....

delete ? A;

方法四:

用vector

#include ?

using ? namespace ? std;

void ? main()

{

vector ? A(90000);

A[0] ? = ? 1;

}




常見(jiàn)頭文件

#include <cstdio>

#include <cmath>

#include <algorithm>

http://blog.csdn.net/wlchen123/article/details/8219131

常見(jiàn)的:max、min袖外、sort 史隆、swap、

#include <iostream>

#include <cstring>

C++里的 cstring對(duì)應(yīng)C語(yǔ)言的string.h

string.h是C中處理字符串的函數(shù)的聲明曼验,string是C++中string類(lèi)的頭文件泌射,盡管在C++中包含string.h是允許的,但C++標(biāo)準(zhǔn)建議用頭文件cstring來(lái)替代string.h

里面常用:

strcmp(a,b)==0? 比較字符串是否相同鬓照,相同返回值是0熔酷,a>b返回正數(shù);a<b返回負(fù)數(shù)

memset(a,0,sizeof(a));? ? ? 把字符串清空(所有字符元素全變成\0)

strlen(a);? ? ? ? ? 計(jì)算這個(gè)字符串的長(zhǎng)度(到第一個(gè)\0為止)

strcpy

strcat:char * strncat ( char * destination, const char * source, size_t num );

Append characters from string

Appends the firstnumcharacters ofsourcetodestination, plus a terminating null-character.

If the length of the C string insourceis less thannum, only the content up to the terminating null-character is copied.


#include <map>

#include <string>

C++中豺裆,string頭文件基本上已經(jīng)包含在iostream中了拒秘。

但是,平時(shí)使用的時(shí)候建議加上#include(尤其在以下情況下)

1臭猜、使用string類(lèi)型

2躺酒、使用cin、cout語(yǔ)句來(lái)輸入輸出string類(lèi)型變量(注意蔑歌,同時(shí)還需要#include)

3羹应、使用memset()、strlen()次屠、strcpy()园匹、strcat等函數(shù)時(shí)

函數(shù)原型char *strcpy(char *dest,const char *src)


#include <stack>

#include <cctype>

#include <vector>

#include <queue>

#include <set>

#include <utility>

#include <cassert>

#include <numeric>

#include <sstream>


using?namespace?std;

#define?Online_Judge

#define?outstars?cout?<<?"***********************"?<<?endl;

#define?clr(a,b)?memset(a,b,sizeof(a))

#define?lson?l?,?mid??,?rt?<<?1

#define?rson?mid?+?1?,?r?,?rt?<<?1?|?1

#define?mk?make_pair

const?int?MAXN?=?1000?+?50;

const?int?MAXS?=?10000?+?50;

const?int?sigma_size?=?26;

const?long?long?LLMAX?=?0x7fffffffffffffffLL;

const?long?long?LLMIN?=?0x8000000000000000LL;

const?int?INF?=?0x7fffffff;

const?int?IMIN?=?0x80000000;

const?int?inf?=?1?<<?30;

#define?eps?1e-10

const?long?long?MOD?=?1000000000?+?7;

const?int?mod?=?10007;

typedef?long?long?LL;

const?double?PI?=?acos(-1.0);

typedef?double?D;

typedef?pair?pii;

typedef?vector?vec;

typedef?vector?mat;

typedef?vector?vs;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市劫灶,隨后出現(xiàn)的幾起案子裸违,更是在濱河造成了極大的恐慌,老刑警劉巖本昏,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件累颂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡凛俱,警方通過(guò)查閱死者的電腦和手機(jī)紊馏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蒲犬,“玉大人朱监,你說(shuō)我怎么就攤上這事≡#” “怎么了赫编?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵巡蘸,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我擂送,道長(zhǎng)悦荒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任嘹吨,我火速辦了婚禮搬味,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蟀拷。我一直安慰自己碰纬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布问芬。 她就那樣靜靜地躺著悦析,像睡著了一般。 火紅的嫁衣襯著肌膚如雪此衅。 梳的紋絲不亂的頭發(fā)上强戴,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音挡鞍,去河邊找鬼酌泰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛匕累,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播默伍,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼欢嘿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了也糊?” 一聲冷哼從身側(cè)響起炼蹦,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狸剃,沒(méi)想到半個(gè)月后掐隐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钞馁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年虑省,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僧凰。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡探颈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出训措,到底是詐尸還是另有隱情伪节,我是刑警寧澤光羞,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站怀大,受9級(jí)特大地震影響纱兑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜化借,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一潜慎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屏鳍,春花似錦勘纯、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至山涡,卻和暖如春堤结,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸭丛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工竞穷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鳞溉。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓瘾带,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親熟菲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子看政,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言: 詳細(xì)介紹: List:元素有放入順序,元素可重復(fù)Map:元素按鍵值對(duì)存儲(chǔ)做入,無(wú)放入順序Set:元素?zé)o放入順序...
    YBshone閱讀 8,667評(píng)論 0 17
  • 容器的概念所謂STL容器冒晰,即是將最常運(yùn)用的一些數(shù)據(jù)結(jié)構(gòu)(data structures)實(shí)現(xiàn)出來(lái)。容器是指容納特定...
    飯飯H閱讀 383評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法竟块,類(lèi)相關(guān)的語(yǔ)法翩剪,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法彩郊,異常的語(yǔ)法前弯,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,644評(píng)論 18 399
  • Scala的集合類(lèi)可以從三個(gè)維度進(jìn)行切分: 可變與不可變集合(Immutable and mutable coll...
    時(shí)待吾閱讀 5,825評(píng)論 0 4
  • 文/月寶 記得當(dāng)初恕出,初來(lái)乍到询枚。 背著肩上的行李,握著地圖浙巫,立于上海車(chē)水馬龍的鬧市街頭金蜀,看每一個(gè)方向都是高樓夾擁的街...
    Sheryl月公子閱讀 539評(píng)論 0 4