C 容器的assign 函式

2022-06-27 06:45:13 字數 610 閱讀 9926

**:

stl中不同容器之間是不能直接賦值的,assign()可以實現不同容器但相容的型別賦值,如:

1 listnames;

2 vector

char*> oldstyle = ;3//

names = oldstyle;錯誤!不同的型別不能執行"="操作

有兩點要注意:

1.賦值運算會導致指向左邊容器內部的迭代器、引用和指標失效,而swap操作將容器內容交換不會導致指向容器的迭代器、引用和指標失效(容器型別為array和string的情況除外).

2.向乙個vector、string或deque插入元素會使得所有指向容器的迭代器,引用和指標失效。

iphone retain 和 assign的區別

assign表示直接傳遞引用給屬性值 retain表示將某個物件引用傳遞給屬性值時,屬性值會將引用計數加一,也就是說,屬性會自己額外保留乙份引用.舉例子說.nsobject a nsobject alloc init classb.oneproperty a a release 如果是assign的...

C 序列容器建構函式

序列容器 sequential container vector,list,deque 序列容器介面卡 sequential container adaptor stack,queue,priority queue 建構函式如下 cc 建立乙個名稱為c的空容器,c為容器型別,例如vector,t 為...

weak和assign的區別

工作之後,一直使用arc,weak作為property的關鍵字之一,代表弱引用,物件的引用計數不改變。從記憶體管理上說這點和assign是相同的。倆者的不同在於 1.weak 此特質表明該屬性定義了一種 非擁有關係 nonowning relationship 為這種屬性設定新值時,設定方法既不保留...