STL容器的元素型別傳遞測試

2021-09-10 14:03:19 字數 624 閱讀 4510

stl的容器模板類在新增元素的時候,採用拷貝構造,並且是淺拷貝,而不是直接傳遞指標,這意味這系統要多開闢一塊記憶體來滿足容器的使用。如果要正確使用stl容器對各種物件操作要注意過載拷貝建構函式,也就是變成深拷貝

測試**使用到了vector向量,而每次他都呼叫當前元素相應個數的析構以及拷貝構造。這其中的原因是vector初始化大小為1,然後每次新增元素進去它都會改變大小來滿足元素個數的需要,而當新增到第三個的時候它大小直接開闢兩個,後面變為4個(如例輸出)。這就和資料結構中順序表具體操作有關,大膽猜測一下這個大小當到達某個閾值時就會線性增加,而不會翻倍

#include

#include

#include

#include

using

namespace std;

class

stl_test

stl_test

(const stl_test &cd)

~stl_test()

else}}

;int

main()

STL 容器型別

1.stl有6種序列容器型別 1 vector 向量 相當於乙個陣列 在記憶體中分配一塊連續的記憶體空間進行儲存。支援不指定vector大小的儲存。stl內部實現時,首先分配乙個非常大的記憶體空間預備進行儲存,即capacituy 函式返回的大小,當超過此分配的空間時再整體重新放分配一塊記憶體儲存,...

STL 容器型別

1.stl有6種序列容器型別 1 vector 向量 相當於乙個陣列 在記憶體中分配一塊連續的記憶體空間進行儲存。支援不指定vector大小的儲存。stl內部實現時,首先分配乙個非常大的記憶體空間預備進行儲存,即capacituy 函式返回的大小,當超過此分配的空間時再整體重新放分配一塊記憶體儲存,...

STL容器型別

1.stl有6種序列容器型別 1 vector 它提供對元素的隨即訪問,在尾部新增和刪除元素的時間是固定的,在頭部或中部插入和刪除元素的複雜度為線性時間。2 deque 在檔案中宣告。是雙端佇列,支援隨即訪問。從deque的開始與末尾位置插入和刪除元素的時間是固定的。儘管vector和deque都提...