Кажется, что вы что-то упустили при чтении или изучении массивов, потому что размер, который вы указываете при определении массива, - это количество элементов, а не верхний индекс.
Итак
std::string d[2];
определит d
как массив из двух элементов с индексами 0
и 1
.
Если вы не Не знаю заранее количество элементов, затем используйте std::vector
, так как это позволит вам динамически добавлять элементы во время выполнения.