Ninazu
@Ninazu

Что делает этот код?

День добрый. Нашел в закромах чужой старый код, но с такой конструкцией не сталкивался раньше. Что вообще происходит тут кто-то может мне сказать?)
r.push_back(std::pair<uint32_t, std::pair<QString, bool> >(t,
                    std::pair<QString, bool>(substituteValues(QString::fromUtf8(m_currentLocation.transitions.at(t).title.c_str())),
                                             false)));
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
sfi0zy
@sfi0zy
Creative frontend developer
r.push_back( // видимо r - вектор, к нему в конец добавляется новый элемент
    std::pair<uint32_t, std::pair<QString, bool> >( // этот самый новый элемент - пара значений,
            // одно типа uint32_t, другое - пара из значений типа QString и типа bool
            // (автор встраивает нам пару в пару, чтобы мы могли... <здесь картинка с монитором>)
       t, // первое значение в нашей паре - вероятно раннее определенная переменная t
       std::pair<QString, bool> ( // второе, как уже говорили - пара, 
            substituteValues( // первое ее значение берется из какой-то функции, которая на вход берет
                QString::fromUtf8( // какую-то строку
                    m_currentLocation.transitions.at(t).title.c_str() // получаемую вот таким образом
                )
            ),
            false // ну а второе ее значение - просто false
        )
    )
);


Про пары читать тут, про шаблоны примерно там же, про QString - вот там

А по поводу того, зачем все это нужно - лучше спросить у автора - одна строка, вырванная из контекста может дать неправильное впечатление о происходящем
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ninazu
@Ninazu Автор вопроса
Получается что-то вроде этого, если интерпретировать на PHP к примеру?

$r[]  = array(
    $t=>array(
        substituteValues($m_currentLocation->transitions[$t]->title) => false
    )
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы