С++Advanced,лекция2, Task1-MinBy - четене на втори ред от конзолен вход
Здравейте,
как от вектора values, който е "едномерен", и получен като return стойност от функцията:
std::vector<std::string> readWhitespaceSeparatedValuesLine() {
std::vector<std::string> values;
вадим позиция [0][0], която вярно е на втори ред, първи елемент от вход, за да swich-нем по нея?
int minCharacteristic = readWhitespaceSeparatedValuesLine()[0][0] - '0';
switch (minCharacteristic)
{
case 1:
... ...
Поздрави!
Здравей,
Предполагам става въпрос за този ред
Функцията връща вектор от стрингове, когато достъпим вектора с оператора [0] - вземаме стринга на нулева позиция.
Този стринг сам по себе си е съставен от последователност от символи - char.
С оператора [0] можем да вземем символът на индекс 0 от този стринг.
В този код се взема първият стринг във вектора и от този стринг се взема символът на индекс [0].
След това се изважа '0' което предполагам значи, че този символ ще е число между 0 и 9 и така вземаме тази стойност, а не аски стойността.
Edit: Погледнах условието на задачата това всъщност е вторият ред от входните данни, което значи, че във вектора ще има стринг например ("3"). когато се викне функцията с оператора [0] върху вектора се взема този стринг, но това е стринг все още и за да може да се вземе неговата стойност единият от начините е да се достъпи нулевият индекс, като char с аски стойност 51 от този символ се изважда символът '0' което е равно на 48 и числовият резултат е 3, но този път като целочислена стойност. Тъй като в задачата е ясно, че втория ред може да съдържа стойности от 1 до 3. Това е просто още един начин по който може да се прочете входа.
Позрави