後ろじゃなくて前からどうやっresizeて?std::deque
(はい、もちろん、push_front何千回もダミー値を使用できますが、より良い/より効率的な方法はありますか?)
insertN 個の要素を挿入する のオーバーロードがあります。
std::deque<int> c;
std::size_t new_size = get_new_desired_size();
c.insert(c.begin(), new_size - c.size(), int());
(この例では が必要ですnew_size >= c.size())
より完全な解決策:
std::deque<T> deque;
std::size_t new_size = /* ... */;
if (new_size >= deque.size())
deque.insert(deque.begin(), new_size - deque.size(), T());
else
deque.erase(deque.begin(), deque.begin() + deque.size() - new_size);
の性質上、残りstd::dequeのすべての反復子はいずれの場合でも有効なままにする必要があります。