C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 特殊的forward_list
單向鏈表的刪除操作,真正刪除的是某個元素后面的值(想想是為什么?)
| lst.before_begin() | 返回指向鏈表首元素之前不存在的元素的迭代器,此迭代器不能解引用。 |
| lst.cbefore_begin() | 同上,但是返回的是常量迭代器。 |
| lst.insert_after(p, t) | 在迭代器p之后插入元素。t是一個對象 |
| lst.insert_after(p, n, t) | 在迭代器p之后插入元素。t是一個對象,n是數量。若n是0則函數行為未定義 |
| lst.insert_after(p, b, e) | 在迭代器p之后插入元素。由迭代器b和e指定范圍。 |
| lst.insert_after(p, il) | 在迭代器p之后插入元素。由il指定初始化列表。 |
| emplace_after(p, args) | 使用args在p之后的位置,創建一個元素,返回一個指向這個新元素的迭代器。若p為尾后迭代器,則函數行為未定義。 |
| lst.erase_after§ | 刪除p指向位置之后的元素,返回一個指向被刪元素之后的元素的迭代器,若p指向lst的尾元素或者是一個尾后迭代器,則函數行為未定義。 |
| lst.erase_after(b, e) | 類似上面,刪除對象換成從b到e指定的范圍。 |
eg. 如下輸出為2468
forward_list<int> vi = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };auto prev = vi.before_begin();auto curr = vi.begin();while (curr != vi.end()){if (*curr % 2){curr = vi.erase_after(prev);}else {prev = curr;curr++;}}auto curr2 = vi.begin();while (curr2 != vi.end()) {cout << *curr2;curr2++;}2. 改變大小
c.resize(n) 調整c的大小為n個元素,若n<c.size(),則多出的元素被丟棄。若必須添加新元素,對新元素進行值初始化
c.resize(n, t) 調整c的大小為n個元素,任何新添加的元素都初始化為值t
【引用】
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(9)c
- 下一篇: C++ Primer 5th笔记(9)c