1. container::size()
用於表示容器中有幾個元素,用n來表示, 並不能表示容器現有的內存最多能存多少個元素。
2. container::capacity()
用於表示容器現有的內存最多能夠存放多少個元素, 用m來表示。 如果想要計算容器現有的內存還能夠存放幾個元素 = capacity() - size();
3. container::resize(size_t n1)
用於改變n,用於改變容器中現有的元素個數。當調用resize(n1)之後,那麼size()函數返回的就是n1。
如果n1 < n, 那麼容器中後面的n-n1個元素會被析構掉。
如果n1> n, 那麼在容器的後面會插入新n1-n個元素,調用的都是新的元素的默認構造函數(這說明作爲容器元素的默認構造函數的重要性)。
如果n1 > m, 那麼這個時候會調用rellocate函數來爲容器分配n1-m個元素的內存空間,同時調用默認構造函數,這時,也會修改m的值。
4. container::reserve(size_t m1)
用於改變m的值,用於改變容器在現有內存下所能存儲的元素的個數。 當調用reserver(m1)之後,那麼capacity()函數放回的就是m1.
如果m1 < m, 那麼容器會忽略掉這個調用,如果想要釋放掉不用的內存,那麼可以使用swap技巧來實現。
如果m1 > m, 那麼容器會調用rellcate函數爲容器增加新的內存空間,但是不會調用默認構造函數。