четверг, 13 февраля 2014 г.

Почему я с недоверием отношусь к сложным конструкциям: С++

Потому что мой примитивный разум отказывается понимать вычурную логику.

Вот, например. Пишем файл main.cpp примерно такого вида:
#include <iostream>
using namespace std;

int main()
{
    int a[2];
    a[0] = 1; a[1] = 2;
    int t = 1;

    a[t] = a[--t + 1] + 1;

    cout << t << " = " << a[0] << "  " << a[1] << "\n";
}
Компилируем командой gcc main.cpp -lstdc++, запускаем. На экране выводится:
0 = 3 2
Практически тот же самый код:
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    std::vector<int> a(2);
    a[0] = 1; a[1] = 2;
    int t = 1;

    a[t] = a[--t + 1] + 1;

    cout << t << " = " << a[0] << "  " << a[1] << "\n";
}
Выводит на экран:
0 = 1 3

Разница только в объявлениях. Вот как с этим можно работать?! Как по минному полю ходить...

Комментариев нет:

Отправить комментарий