почему результат 1? - PullRequest
       1

почему результат 1?

0 голосов
/ 28 февраля 2020
#include <iostream>
#include <vector>
int main()
{
    std::vector<int> sum(1);
    sum.push_back(1);
    sum[0] = 1;
    std::cout << sum[1];
}

почему результат равен 1? Я никогда не определяю сумму [0].

1 Ответ

7 голосов
/ 28 февраля 2020

Эта строка создает вектор с размером 1 со значением ноль

std::vector<int> sum(1);   // sum now contains { 0 }

Затем после вашего push_back

sum.push_back(1);          // sum now contains { 0, 1 }

Затем вы присваиваете первое значение

sum[0] = 1;                // sum now contains { 1, 1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...