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

麒麟子

~~

導(dǎo)航

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

統(tǒng)計

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

Friends

WebSites

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

[導(dǎo)入]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的
//建立一個向量并為之分配內(nèi)存
std::vector<int> v; // create an empty vector
v.reserve (80); // reserve memory for 80 elements
//建立一個向量,并用默認(rèn)的構(gòu)造函數(shù)初始化,因此速度較慢
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] //如果不夠的話就繼續(xù)分配內(nèi)存
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>有特殊的函數(shù)
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 麒麟子 閱讀(80) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   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>
            国产精品福利在线| 亚洲欧美日韩一区| 亚洲一区二区三区在线视频| 亚洲欧洲日产国产网站| 欧美日韩国产综合视频在线| 欧美国产日韩精品免费观看| 国产精品久久久久久av福利软件 | 久久久久久夜精品精品免费| 亚洲国产人成综合网站| 国产日本欧洲亚洲| 日韩一区二区精品葵司在线| 国产精品伦理| 中文亚洲免费| 欧美日韩亚洲综合在线| 亚洲国产毛片完整版| 亚洲直播在线一区| 老司机免费视频一区二区| 亚洲一区二区不卡免费| 欧美国产日韩精品| 亚洲国产精品久久久久| 欧美激情亚洲| 亚洲肉体裸体xxxx137| 亚洲精品一区二区三区不| 亚洲国产精品一区| 亚洲美女免费精品视频在线观看| 亚洲欧洲精品一区二区三区波多野1战4| 美女久久一区| 亚洲成色www久久网站| 亚洲另类春色国产| 欧美亚洲在线播放| 国产欧美一区二区精品秋霞影院| 国产欧美在线看| 亚洲成色精品| 亚洲视频日本| 六月天综合网| 日韩视频一区二区三区| 亚洲综合第一页| 久久精品欧美| 欧美久久久久中文字幕| 一本一道久久综合狠狠老精东影业| 一区二区成人精品| 99精品视频免费观看视频| 午夜精品偷拍| 欧美区视频在线观看| 国产欧美日韩一级| 一区二区三区四区蜜桃| 久久久天天操| 日韩亚洲一区二区| 久久久91精品国产一区二区三区 | 国产精品久久久久国产精品日日 | 亚洲在线免费| 欧美成人久久| 中文在线资源观看网站视频免费不卡 | 午夜日韩福利| 欧美精品一区二区高清在线观看| 国产精品久久久久久久久免费 | 国产精品毛片大码女人| 亚洲欧洲日韩女同| 久久精品在线观看| 亚洲一二三区在线观看| 欧美成人精品激情在线观看| 国产精品丝袜xxxxxxx| 日韩午夜激情av| 美女图片一区二区| 欧美一区在线视频| 国产精品爽黄69| 好看不卡的中文字幕| 亚洲激情成人| 久久一区二区视频| 久久福利精品| 国产亚洲成精品久久| 亚洲区一区二| 欧美福利一区二区| 久久蜜桃资源一区二区老牛 | 亚洲一区二区精品| 欧美日韩18| 99精品视频一区二区三区| 欧美呦呦网站| 欧美高清在线一区二区| 久久久www成人免费无遮挡大片| 国产精品久久久久久久久婷婷| 美女日韩在线中文字幕| 欧美日韩国语| 在线观看视频欧美| 久久夜色精品国产欧美乱| 午夜精品一区二区三区在线播放| 国产精品久久久久久亚洲调教| 一本色道久久88综合日韩精品| 亚洲第一主播视频| 篠田优中文在线播放第一区| 亚洲免费综合| 国产视频不卡| 久久综合给合| 久热精品视频在线| 亚洲区一区二区三区| 亚洲精品欧洲精品| 欧美日韩在线播| 亚洲成色精品| 开心色5月久久精品| 久久伊人免费视频| 亚洲精品日韩精品| 亚洲色图自拍| 国产日韩精品视频一区| 欧美成人精品不卡视频在线观看| 巨乳诱惑日韩免费av| 一本久久青青| 亚洲一区二区免费在线| 黑人巨大精品欧美一区二区小视频| 亚洲精选久久| 亚洲精品中文字| 国产美女一区| 免费在线日韩av| 欧美绝品在线观看成人午夜影视| 午夜激情综合网| 久久综合色播五月| 一区二区三区导航| 一区二区三区 在线观看视| 欧美日韩国产影院| 久久久久久久综合| 午夜久久资源| 日韩视频在线免费观看| 国产偷国产偷亚洲高清97cao| 欧美风情在线| 国产精品一级| 亚洲毛片av| 国产亚洲制服色| 欧美成人免费在线| 亚洲在线第一页| 亚洲麻豆一区| 久久精品亚洲一区| 妖精成人www高清在线观看| 99国产精品国产精品久久| 国产在线一区二区三区四区 | 99亚洲一区二区| 午夜精品久久久久久99热软件| 国产精品亚洲美女av网站| 亚洲电影中文字幕| 亚洲人成高清| 亚洲精品少妇30p| 亚洲精品乱码| 日韩亚洲欧美成人| 欧美日韩国产在线播放| 亚洲美女精品久久| 亚洲免费不卡| 欧美另类一区二区三区| 日韩午夜在线| 亚洲欧美日韩第一区| 国产美女精品免费电影| 欧美在线视频导航| 欧美xx视频| 99视频一区| 国产精品视频区| 久久精品最新地址| 欧美激情一级片一区二区| 9久re热视频在线精品| 欧美日韩亚洲在线| 午夜精品福利一区二区蜜股av| 久久精品日韩欧美| 亚洲欧洲精品一区二区三区 | 99成人精品| 国产亚洲欧美一区二区| 欧美在线关看| 亚洲成色精品| 亚洲影院色在线观看免费| 国产精品一区二区三区四区| 久久成人在线| 亚洲国产日韩一区| 欧美一级电影久久| 在线视频国产日韩| 欧美日韩国产高清| 久久精品一级爱片| 亚洲免费av片| 狂野欧美激情性xxxx| 一区二区三区国产在线| 国产综合色产在线精品| 欧美日韩国产bt| 亚洲欧美中文字幕| 亚洲国产精品嫩草影院| 亚洲欧美美女| 亚洲精品欧美精品| 国内激情久久| 欧美午夜久久| 欧美激情精品久久久久久大尺度| 一本色道久久99精品综合| 久久亚洲国产成人| 亚洲午夜视频在线| 亚洲激情在线播放| 国产一区二区三区久久久久久久久 | 国产精品美女一区二区| 久久精品女人| 亚洲天堂网在线观看| 欧美激情视频在线播放| 久久久久久久久岛国免费| 一区二区三区高清视频在线观看| 狠狠色综合一区二区| 欧美日韩综合不卡| 久久人人爽人人| 欧美一区二区三区免费视| 在线亚洲高清视频| 亚洲精品久久|