spamsink: (Default)
[personal profile] spamsink


Кто не пишет на С++, догадайтесь, что печатает эта программа:
#include <vector>
using namespace std;
int ctors, dtors, copyctors;

struct foo {
        foo() { ctors++; }
        foo(const foo &) { copyctors++; }
        ~foo() { dtors++; }
};
vector < vector < foo > > pool;
void addline() {
        ctors = dtors = copyctors = 0;
        pool.push_back(vector < foo > ());
        pool.back().reserve(1000);
        for (int i = 0; i < 1000; ++i)
                pool.back().push_back(foo());
        printf("ctors = %d, dtors = %d, copyctors = %d\n",
        ctors, dtors, copyctors);
}

main() {
        addline();        
        addline();
        ctors = dtors = copyctors = 0;
        pool.push_back(vector < foo > ());
        printf("ctors = %d, dtors = %d, copyctors = %d\n",
        ctors, dtors, copyctors);
}


И при всем богатстве выбора языков другой альтернативы нет.

Улита едет, когда-то будет.
Page generated Mar. 8th, 2026 05:08 am
Powered by Dreamwidth Studios