首先,妳得要先明白,vector是開辟壹塊空間來作為數組來存放元素(隨機叠代器),如果有了pop_front,pop_back這個功能則很容易造成內存碎片,pop_front會造成頭部內存產生碎片,pop_back朝臣尾部內存產生碎片,所以不能像deque(雙向叠代器)那樣有pop_front, pop_back這樣的完全相同的實現.其次才是性能上的問題,vector實現pop_front的功能可以這樣:
vector<int> vi;
vi.push_back(1);
vi.push_back(2);
vi.push_back(3);
vi.erase(vi.begin());//等同於push_front
但是,這樣實現的實質是,重新開辟內存放置元素後釋放原先的內存,這樣做的原因是放置內存碎片,在程序中,如果產生內存碎片則意味著這是內存泄露,是十分危險的壹件事情,所以不能在stl中出現
上一篇:鯊魚記賬無法登陸怎麽辦?下一篇:FOXQUEEN銀狐320P4電源如何?