C 11 新特性 容器的非成員函式swap

2021-09-19 06:31:44 字數 578 閱讀 8162

除aary外,交換兩個容器內容的操作保證會很快------元素本身並未被交換,swap只是交換了兩個容器的內部資料結構。元素不會被移動的事實意味著,除string外,指向視窗的迭代器、引用和指標在swap操作之後都不會失效。它們仍指向swap操作之前所指向的那些元素,只是這些元素已經屬於不同的容器了。與其它容器不同,對乙個string呼叫swap會導致迭代器、引用和指標失效。

swap兩個array會真正交換它們的元素,因此交換兩個array所需的時間與array中元素的數目成正比;對於array,在swap操作之後,指標、引用和迭代所繫結的元素保持不變,但元素值已經與另乙個array中對應元素的值進行了交換。

#include

#include

using

namespace std;

intmain()

; array<

int,

5> arr2 =

;swap

(arr1, arr2)

;}

非成員版本的swap在泛型程式設計中非常重要,統一使用非成員版本的swap是乙個好習慣

C 11新特性(26) 容器的insert成員

c 11除了引入了許多新語法以外,還對標準庫進行了強化。今天就以容器的insert方法為例進行說明。從c 98到c 11 c 98中的insert方法宣告 iterator insert iterator position,const value type val void insert itera...

c 11新特性 lambda函式

lambda歷史悠久,在數理邏輯和電腦科學領域,lambda被用來表示一種匿名函式這種匿名函式代表了一種 演算 lambda calculus 但是在c 領域直到c 11才引入lambda表示式,本文先打算從lambda函式入手 後續會繼續從lambda與仿函式 lambda基礎應用 lambda的...

c 11的新特性

1 型別說明符auto 2.decltype提取型別 int a 0 decltype a b b 10 cout b endl 3.基於範圍的for迴圈 4.虛函式的override和final指示符 final修飾類 類無法被繼承 final修飾虛函式 虛函式不能被重寫 override就是輔助...