青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

麒麟子

~~

導航

<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

統計

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

Friends

WebSites

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

[導入]List methods



Table 6.12. Constructors and Destructor of Lists Operation Effect
list<Elem> c Creates an empty list without any elements
list<Elem> c1(c2) Creates a copy of another list of the same type (all elements are copied)
list<Elem> c(n) Creates a list with n elements that are created by the default constructor
list<Elem> c(n,elem) Creates a list initialized with n copies of element elem
list<Elem> c (beg,end) Creates a list initialized with the elements of the range [beg,end)
c.~list<Elem>() Destroys all elements and frees the
memory

Table 6.13. Nonmodifying Operations of Lists Operation Effect
c.size() Returns the actual number of elements
c. empty () Returns whether the container is empty (equivalent to size()==0, but might be faster)
c.max_size() Returns the maximum number of elements possible
c1 == c2 Returns whether c1 is equal to c2
c1 != c2 Returns whether c1 is not equal to c2 (equivalent to ! (c1==c2))
c1 < c2 Returns whether c1 is less than c2
c1 > c2 Returns whether c1 is greater than c2 (equivalent to c2<c1)
c1 <= c2 Returns whether c1 is less than or equal to c2 (equivalent to ! (c2<c1) )
c1 >= c2 Returns whether c1 is greater than or equal to c2 (equivalent to ! (c1<c2))

Table 6.14. Assignment Operations of Lists Operation Effect
c1 = c2 Assigns all elements of c2 to c1
c.assign(n,elem) Assigns n copies of element elem
c.assign(beg,end) Assigns the elements of the range [beg,end)
c1.swap(c2) Swaps the data of c1 and c2
swap(c1,c2) Same (as global function)

Table 6.15. Direct Element Access of Lists Operation Effect
c.front() Returns the first element (no check whether a first element exists)
c.back() Returns the last element (no check whether a last element exists)

Table 6.16. Iterator Operations of Lists Operation Effect
c.begin() Returns a bidirectional iterator for the first element
c.end() Returns a bidirectional iterator for the position after the last element
c.rbegin() Returns a reverse iterator for the first element of a reverse iteration
c.rend() Returns a reverse iterator for the position after the last element of a reverse iteration

Table 6.17. Insert and Remove Operations of Lists Operation Effect
c.insert (pos, elem) Inserts at iterator position pos a copy of elem and returns the position of the new element
c.insert (pos,n, elem) Inserts at iterator position pos n copies of elem (returns nothing)
c. insert (pos, beg,end) Inserts at iterator position pos a copy of all elements of the range [beg,end) (returns nothing)
c.push_back(elem) Appends a copy of elem at the end
c.pop_back() Removes the last element (does not return it)
c.push_front(elem) Inserts a copy of elem at the beginning
c.pop_front () Removes the first element (does not return it)
c. remove (val) Removes all elements with value val
c.remove_if (op) Removes all elements for which op(elem) yields true
c. erase (pos) Removes the element at iterator position pos and returns the position of the next element
c.erase (beg,end) Removes all elements of the range [beg,end) and returns the position of the next element
c. resize (num) Changes the number of elements to num (if size() grows, new elements are created by their default constructor)
c.resize (num, elem) Changes the number of elements to num (if size ( ) grows, new elements are copies of elem)
c. clear () Removes all elements (makes the container empty)

Table 6.18. Special Modifying Operations for Lists Operation Effect
c.unique() Removes duplicates of consecutive elements with the same value
c.unique(op) Removes duplicates of consecutive elements, for which op() yields true
c1.splice(pos,c2) Moves all elements of c2 to c1 in front of the iterator position pos
c1.splice(pos,c2,c2pos) Moves the element at c2pos in c2 in front of pos of list c1 (c1 and c2 may be identical)
c1.splice(pos,c2,c2beg,c2end) Moves all elements of the range [c2beg,c2end) in c2 in front of pos of list c1 (c1 and c2 may be identical)
c.sort() Sorts all elements with operator <
c.sort(op) Sorts all elements with op()
c1.merge(c2) Assuming both containers contain the elements sorted, moves all elements of c2 into c1 so that all elements are merged and still sorted
c1.merge(c2,op) Assuming both containers contain the elements sorted due to the sorting criterion op(), moves all elements of c2 into c1 so that all elements are merged and still sorted according to op()
c.reverse() Reverses the order of all elements

Examples of Using Lists
The following example in particular shows the use of the special member functions for lists:


// cont/list1.cpp

#include <iostream>
#include <list>
#include <algorithm>
using namespace std;

void printLists (const list<int>& 11, const list<int>& 12)
{

cout << "list1: ";
copy (l1.begin(), l1.end(), ostream_iterator<int>(cout," "));
cout << endl << "list2: ";
copy (12.begin(), 12.end(), ostream_iterator<int>(cout," "));
cout << endl << endl;

}

int main()
{

//create two empty lists
list<int> list1, list2;

//fill both lists with elements
for (int i=0; i<6; ++i) {
list1.push_back(i);
list2.push_front(i);
}
printLists(list1, list2);

//insert all elements of list1 before the first element with value 3 of list2
//-find() returns an iterator to the first element with value 3
list2.splice(find(list2.begin(),list2.end(), // destination position
3),
list1); // source list
printLists(list1, list2);

//move first element to the end
list2.splice(list2.end(), // destination position
list2, // source list
list2.begin()); // source position
printLists(list1, list2);

//sort second list, assign to list1 and remove duplicates
list2.sort();
list1 = list2;
list2.unique();
printLists(list1, list2);

//merge both sorted lists into the first list
list1.merge(list2);
printLists(list1, list2);
}


The program has the following output:


list1: 0 1 2 3 4 5
list2: 5 4 3 2 1 0

list1:
list2: 5 4 0 1 2 3 4 5 3 2 1 0

list1:
list2: 4 0 1 2 3 4 5 3 2 1 0 5

list1: 0 0 1 1 2 2 3 3 4 4 5 5
list2: 0 1 2 3 4 5

list1: 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
list2:


Vector的
//建立一個向量并為之分配內存
std::vector<int> v; // create an empty vector
v.reserve (80); // reserve memory for 80 elements
//建立一個向量,并用默認的構造函數初始化,因此速度較慢
std::vector<T> v(5); // creates a vector and initializes it with five values
// (calls five times the default constructor of type T)


Table 6.2. Constructors and Destructors of Vectors Operation Effect
vector<Elem> c Creates an empty vector without any elements
vector<Elem> c1(c2) Creates a copy of another vector of the same type (all elements are copied)
vector<Elem> c(n) Creates a vector with n elements that are created by the default constructor
vector<Elem> c(n,elem) Creates a vector initialized with n copies of element elem
vector<Elem> c(beg,end) Creates a vector initialized with the elements of the range [beg,end)
c.~vector<Elem>() Destroys all elements and frees the memory

Table 6.3. Nonmodifying Operations of Vectors Operation Effect
c.size() Returns the actual number of elements
c.empty() Returns whether the container is empty (equivalent to size()==0, but might be faster)
c.max_size() Returns the maximum number of elements possible
capacity() Returns the maximum possible number of elements without reallocation
reserve() Enlarges capacity, if not enough yet[7] //如果不夠的話就繼續分配內存
c1 == c2 Returns whether c1 is equal to c2
c1 != c2 Returns whether c1 is not equal to c2 (equivalent to ! (c1==c2))
c1 < c2 Returns whether c1 is less than c2
c1 > c2 Returns whether c1 is greater than c2 (equivalent to c2<c1)
c1 <= c2 Returns whether c1 is less than or equal to c2 (equivalent to ! (c2<c1))
c1 >= c2 Returns whether c1 is greater than or equal to c2 (equivalent to ! (c1<c2))

Table 6.4. Assignment Operations of Vectors Operation Effect
c1 = c2 Assigns all elements of c2 to c1
c.assign(n,elem) Assigns n copies of element elem
c.assign(beg,end) Assigns the elements of the range [beg,end)
c1.swap(c2) Swaps the data of c1 and c2
swap(c1,c2) Same (as global function)

Table 6.5. Direct Element Access of Vectors Operation Effect
c.at(idx) Returns the element with index idx (throws range error exception if idx is out of range)
c[idx] Returns the element with index idx (no range checking)
c.front() Returns the first element (no check whether a first element exists)
c.back() Returns the last element (no check whether a last element exists)

通過at來訪問元素的時候如果越界會有一個out_of_range異常
用[]重載來訪問的時候只會報錯

Table 6.6. Iterator Operations of Vectors Operation Effect
c.begin() Returns a random access iterator for the first element
c.end() Returns a random access iterator for the position after the last element
c.rbegin() Returns a reverse iterator for the first element of a reverse iteration
c.rend() Returns a reverse iterator for the position after the last element of a reverse iteration

Table 6.7. Insert and Remove Operations of Vectors Operation Effect
c.insert(pos,elem) Inserts at iterator position pos a copy of elem and returns the position of the new element
c.insert(pos,n,elem) Inserts at iterator position pos n copies of elem (returns nothing)
c.insert(pos,beg,end) Inserts at iterator position pos a copy of all elements of the range [beg,end) (returns nothing)
c.push_back(elem) Appends a copy of elem at the end
c.pop_back() Removes the last element (does not return it)
c.erase(pos) Removes the element at iterator position pos and returns the position of the next element
c.erase(beg,end) Removes all elements of the range [beg,end) and returns the position of the next element
c.resize(num) Changes the number of elements to num (if size() grows, new elements are created by their default constructor)
c.resize(num,elem) Changes the number of elements to num (if size() grows, new elements are copies of elem)
c.clear() Removes all elements (makes the container empty)

std::vector<Elem> coll;
...
//remove all elements with value val
coll.erase(remove(coll.begin(),coll.end(),
val),
coll.end());

std::vector<Elem> coll;
...
//remove first element with value val
std::vector<Elem>::iterator pos;
pos = find(coll.begin(),coll.end(),
val);
if (pos != coll.end()) {
coll.erase(pos);
}

vector<bool>有特殊的函數
Table 6.8. Special Operations of vector<bool> Operation Effect
c.flip() Negates all Boolean elements (complement of all bits)
m[idx].flip() Negates the Boolean element with index idx (complement of a single bit)
m[idx] = val Assigns val to the Boolean element with index idx (assignment to a single bit)
m[idx1] = m[idx2] Assigns the value of the element with index idx2 to the element with index idx1

Examples of Using Vectors
The following example shows a simple usage of vectors:


// cont/vector1.cpp

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()
{

//create empty vector for strings
vector<string> sentence;

//reserve memory for five elements to avoid reallocation
sentence.reserve(5);

//append some elements
sentence.push_back("Hello,");
sentence.push_back("how");
sentence.push_back("are");
sentence.push_back("you");
sentence.push_back("?");

//print elements separated with spaces
copy (sentence.begin(), sentence.end(),
ostream_iterator<string>(cout," "));
cout << endl;

//print ''technical data''
cout << " max_size(): " << sentence.max_size() << endl;
cout << " size(): " << sentence.size() << endl;
cout << " capacity(): " << sentence.capacity() << endl;

//swap second and fourth element
swap (sentence[1], sentence [3]);

//insert element "always" before element "?"
sentence.insert (find(sentence.begin(),sentence.end(),"?"),
"always");

//assign "!" to the last element
sentence.back() = "!";

//print elements separated with spaces
copy (sentence.begin(), sentence.end(),
ostream_iterator<string>(cout," "));
cout << endl;

//print "technical data" again
cout << " max_size(): " << sentence.max_size() << endl;
cout << " size(): " << sentence.size() << endl;
cout << " capacity(): " << sentence.capacity() << endl;

}


The output of the program might look like this:


Hello, how are you ?
max_size(): 268435455
size(): 5
capacity(): 5
Hello, you are how always !
max_size(): 268435455
size(): 6
capacity(): 10

文章來源:http://ly-weiwei.blog.163.com/blog/static/7297528320092311263852

posted on 2009-03-31 13:26 麒麟子 閱讀(83) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本一本久久| 亚洲欧美在线免费观看| 久久精品免费电影| 国产精品专区第二| 欧美一区二区视频免费观看| 亚洲亚洲精品在线观看| 欧美新色视频| 亚洲欧美日韩一区二区三区在线观看 | 午夜精品久久久久久久蜜桃app| 欧美午夜电影在线| 午夜免费在线观看精品视频| 亚洲影视在线| 国产主播一区二区| 欧美大片va欧美在线播放| 欧美电影免费观看高清| 99精品99久久久久久宅男| 宅男噜噜噜66国产日韩在线观看| 国产精品久久777777毛茸茸| 久久都是精品| 蜜臀久久99精品久久久久久9| 日韩一级在线| 亚洲欧美日韩专区| 影音先锋日韩资源| 亚洲欧洲日产国码二区| 国产精品久久久久久久7电影 | 亚洲一区二区三区四区中文 | 欧美激情成人在线| 欧美日韩一区二区三区四区五区| 亚洲欧美制服中文字幕| 久久久亚洲午夜电影| 在线视频免费在线观看一区二区| 亚洲男人的天堂在线| 在线欧美日韩国产| 99视频精品| 黄色日韩在线| 日韩一级大片| 亚洲电影第三页| 亚洲欧美日韩国产成人| 亚洲欧洲偷拍精品| 欧美一区二区三区四区在线| 日韩网站在线观看| 久久国产精品一区二区三区四区 | 国语精品一区| 一区二区欧美视频| 亚洲精品美女在线观看播放| 欧美一区二区三区男人的天堂| 亚洲日本电影| 久久久久99精品国产片| 午夜精品久久一牛影视| 女女同性女同一区二区三区91| 午夜精品亚洲| 欧美日韩一卡| 亚洲高清视频一区二区| 红桃视频一区| 亚洲欧美日韩在线| 亚洲天堂av综合网| 欧美激情国产高清| 欧美成人小视频| 激情欧美一区二区| 午夜一级在线看亚洲| 亚洲欧美日韩一区| 国产精品久久久久久久久借妻| 亚洲人永久免费| 日韩午夜精品| 欧美精品三级在线观看| 亚洲电影免费| 亚洲黄色小视频| 久久夜色精品一区| 欧美成人精品在线播放| 狠狠爱综合网| 久久国产精品久久w女人spa| 久久精品国产亚洲a| 国产精品一区免费视频| 亚洲一级黄色片| 欧美一区二区在线观看| 国产精品另类一区| 亚洲你懂的在线视频| 久久成人精品一区二区三区| 国产农村妇女精品一区二区| 午夜精品视频| 久久午夜视频| 亚洲啪啪91| 欧美日韩第一区| 一区二区不卡在线视频 午夜欧美不卡在| 在线亚洲一区观看| 国产精品久久久久久久久| 亚洲淫性视频| 麻豆亚洲精品| 亚洲精品欧洲| 国产精品美女| 久久久久久亚洲精品中文字幕| 六月婷婷一区| 一本久久综合亚洲鲁鲁| 欧美午夜电影完整版| 欧美一区二区三区日韩视频| 欧美不卡视频| 亚洲午夜一区| 一区二区在线观看av| 欧美理论电影在线播放| 亚洲图片自拍偷拍| 美女日韩在线中文字幕| 一本色道久久99精品综合| 国产美女诱惑一区二区| 久久只精品国产| 亚洲婷婷综合久久一本伊一区| 久久这里有精品15一区二区三区| 99re6热在线精品视频播放速度| 国产精品白丝黑袜喷水久久久| 久久久久久69| 亚洲视频在线看| 欧美成年人网| 久久成人精品一区二区三区| 亚洲欧洲一级| 国产一区二区三区久久久| 欧美日韩国产不卡在线看| 欧美亚洲免费在线| 亚洲精品美女在线观看播放| 久久久久久综合| 亚洲色图在线视频| 亚洲人成人99网站| 国产亚洲成av人在线观看导航| 欧美激情免费观看| 久久久久久久999精品视频| 中文在线不卡视频| 亚洲国产成人在线| 久久这里只有| 欧美在线观看网址综合| 在线视频中文亚洲| 91久久嫩草影院一区二区| 国产美女诱惑一区二区| 国产精品啊啊啊| 欧美日韩精品免费观看视一区二区| 久久成人在线| 欧美在线一区二区| 亚洲欧美中日韩| 亚洲视频一区二区| 欧美激情视频一区二区三区在线播放| 欧美中文字幕在线视频| 亚洲欧美日本另类| 亚洲午夜精品网| 亚洲午夜免费福利视频| 99精品视频一区| 日韩一区二区精品葵司在线| 亚洲欧洲日产国码二区| 亚洲国产天堂久久综合| 在线观看视频一区二区| 在线观看亚洲a| 黄网站色欧美视频| 在线观看成人av| 亚洲成人在线观看视频| 亚洲国产专区| 亚洲免费观看| 亚洲午夜久久久久久尤物| 亚洲色无码播放| 亚洲欧美另类综合偷拍| 欧美在线观看视频一区二区| 欧美中文字幕精品| 久久精品伊人| 免费在线国产精品| 欧美丰满少妇xxxbbb| 91久久综合亚洲鲁鲁五月天| 日韩一级黄色av| 亚洲图片欧美午夜| 欧美一激情一区二区三区| 欧美一区午夜精品| 欧美在线视频在线播放完整版免费观看 | 最新中文字幕一区二区三区| 91久久精品日日躁夜夜躁欧美| 亚洲久久一区二区| 亚洲视频一区| 久久精品国产清自在天天线| 久久精品国产一区二区三| 免费欧美日韩| 欧美午夜视频| 国模套图日韩精品一区二区| 亚洲成人在线观看视频| 一区二区三区四区五区精品视频| 亚洲欧美在线网| 欧美v日韩v国产v| 亚洲精品婷婷| 欧美一区午夜视频在线观看| 欧美刺激性大交免费视频| 欧美体内she精视频在线观看| 国产一区二区毛片| 亚洲精品综合精品自拍| 翔田千里一区二区| 亚洲福利视频网站| 亚洲在线中文字幕| 欧美成人黑人xx视频免费观看| 国产精品成人一区二区| 亚洲电影免费| 欧美一区二区福利在线| 亚洲国产精品久久久久| 午夜精品区一区二区三| 欧美韩日亚洲| 一区二区在线视频观看| 亚洲在线成人精品| 91久久国产自产拍夜夜嗨| 欧美亚洲视频一区二区| 欧美日韩在线一区二区三区|