АК
Size: a a a
АК
IS
m
big_vector.resize(0); assert(big_vector.capacity() == 0)
?АК
big_vector.resize(0); assert(big_vector.capacity() == 0)
?CD
#include <memory>
struct guard {
std::unique_ptr<guard> & guarded;
guard(std::unique_ptr<guard> & guarded) : guarded(guarded) {}
~guard() { guarded = nullptr; }
};
struct test_ok {
std::unique_ptr<guard> pointer;
test_ok() { pointer = std::make_unique<guard>(pointer); }
~test_ok() { pointer.reset(); } //this will be ok
};
struct test_failed {
std::unique_ptr<guard> pointer;
test_failed() { pointer = std::make_unique<guard>(pointer); }
};
int main() {
test_failed{}; //heap corruption
}
CD
АК
big_vector.resize(0); assert(big_vector.capacity() == 0)
?m
CD
K
K
SK
K
N
N
АК
v.push_back(v.front())
проблемы нет, как заметил комментатор - std позаботился об этомАК