vector 的 push_back实现原理
原理:
vector有预存的内存(capacity),如果存入的元素大于了capacity,就重新分配一个比原来capacity大两倍的内存。
代码示例:
//
// main.cpp
// test
//
// Created by 颜泽鑫 on 4/12/16.
// Copyright © 2016 颜泽鑫. All rights reserved.
//
#include <iostream>
#include <vector>
using namespace std;
class test {
public:
string a;
test(string b) : a(b) {
cout << "new" << " " << a << endl;
}
~test() {
cout << "deleted " << a << endl;
}
};
int main(int argc, const char * argv[]) {
vector<test> array;
string a = "A";
array.push_back(test("a"));
cout << array.capacity() << endl;
array.push_back(test(<