Сообщение Re[4]: Разреженный массив в compile-time от 25.07.2018 10:46
Изменено 25.07.2018 10:52 avovana
Re[4]: Разреженный массив в compile-time
Здравствуйте, Croessmah, Вы писали:
C>Решение, на киберфоруме, ссылку на которое Вам дали, сделалось примерно за час-полтора. )))
C>Что у Вас не получается? Задача, в принципе, не особо сложная.
Croessmah, рад Вас здесь видеть!
То решение мне сложновато давалось для понимания, т.к. опыта у меня немного.
Оказалось, что проще было написать что-то своё и уточнить)
C>Вам нужно пройти по элементам каждого из массивов и сложить их, соответственно, нужен некий get, возвращающий значение элемента массива по индексу (либо из массива, либо значение по-умолчанию).
C>Переделал своё решение с киберфорума под Ваше.
C>Как видите, такой код проходит все тесты в main.
Спасибо за взгляд на решение проблемы с такой стороны.
Так понимаю, что реализация SequenceType написана в стиле шаблонного программирования:
Представлена шаблонная структура со специализацией. Причем два раза.
Первый раз увидел std::declval<>() в реальном коде. Интересно.
Интересная возможность вернуть ссылку с помощью применения std::conditional_t.
В целом, изучаю код. Спасибо за ответ
Странно, что если раскомментирую секцию private в примере с operatorPlusStage1, operatorPlusStage2, то компилятор начинает ругаться, что в методе operator+ идет обращение к закрытой части класса.
operator+ ведь обычный метод класса, который должен иметь доступ ко всем полям и методам класса.
C>Решение, на киберфоруме, ссылку на которое Вам дали, сделалось примерно за час-полтора. )))
C>Что у Вас не получается? Задача, в принципе, не особо сложная.
Croessmah, рад Вас здесь видеть!
То решение мне сложновато давалось для понимания, т.к. опыта у меня немного.
Оказалось, что проще было написать что-то своё и уточнить)
C>Вам нужно пройти по элементам каждого из массивов и сложить их, соответственно, нужен некий get, возвращающий значение элемента массива по индексу (либо из массива, либо значение по-умолчанию).
C>Переделал своё решение с киберфорума под Ваше.
C>Как видите, такой код проходит все тесты в main.
Спасибо за взгляд на решение проблемы с такой стороны.
Так понимаю, что реализация SequenceType написана в стиле шаблонного программирования:
Представлена шаблонная структура со специализацией. Причем два раза.
Первый раз увидел std::declval<>() в реальном коде. Интересно.
Интересная возможность вернуть ссылку с помощью применения std::conditional_t.
В целом, изучаю код. Спасибо за ответ
Странно, что если раскомментирую секцию private в примере с operatorPlusStage1, operatorPlusStage2, то компилятор начинает ругаться, что в методе operator+ идет обращение к закрытой части класса.
operator+ ведь обычный метод класса, который должен иметь доступ ко всем полям и методам класса.
Re[4]: Разреженный массив в compile-time
Здравствуйте, Croessmah, Вы писали:
C>Решение, на киберфоруме, ссылку на которое Вам дали, сделалось примерно за час-полтора. )))
C>Что у Вас не получается? Задача, в принципе, не особо сложная.
Croessmah, рад Вас здесь видеть!
То решение мне сложновато давалось для понимания, т.к. опыта у меня немного.
Оказалось, что проще было написать что-то своё и уточнить)
C>Вам нужно пройти по элементам каждого из массивов и сложить их, соответственно, нужен некий get, возвращающий значение элемента массива по индексу (либо из массива, либо значение по-умолчанию).
C>Переделал своё решение с киберфорума под Ваше.
C>Как видите, такой код проходит все тесты в main.
Спасибо за взгляд на решение проблемы с такой стороны.
Так понимаю, что реализация SequenceType написана в стиле шаблонного программирования:
Представлена шаблонная структура со специализацией. Причем два раза.
Первый раз увидел std::declval<>() в реальном коде. Интересно.
Не совсем понял смысл trailing return type
Вроде бы auto и так должно вывести тип.
Интересная возможность вернуть ссылку с помощью применения std::conditional_t.
Изучаю код. Спасибо за ответ
Странно, что если раскомментирую секцию private в примере с operatorPlusStage1, operatorPlusStage2, то компилятор начинает ругаться, что в методе operator+ идет обращение к закрытой части класса.
operator+ ведь обычный метод класса, который должен иметь доступ ко всем полям и методам класса.
C>Решение, на киберфоруме, ссылку на которое Вам дали, сделалось примерно за час-полтора. )))
C>Что у Вас не получается? Задача, в принципе, не особо сложная.
Croessmah, рад Вас здесь видеть!
То решение мне сложновато давалось для понимания, т.к. опыта у меня немного.
Оказалось, что проще было написать что-то своё и уточнить)
C>Вам нужно пройти по элементам каждого из массивов и сложить их, соответственно, нужен некий get, возвращающий значение элемента массива по индексу (либо из массива, либо значение по-умолчанию).
C>Переделал своё решение с киберфорума под Ваше.
C>Как видите, такой код проходит все тесты в main.
Спасибо за взгляд на решение проблемы с такой стороны.
Так понимаю, что реализация SequenceType написана в стиле шаблонного программирования:
Представлена шаблонная структура со специализацией. Причем два раза.
Первый раз увидел std::declval<>() в реальном коде. Интересно.
Не совсем понял смысл trailing return type
-> SparseArray<decltype(std::declval<T>() + std::declval<TOther>()), Mask | MaskOther>
Вроде бы auto и так должно вывести тип.
Интересная возможность вернуть ссылку с помощью применения std::conditional_t.
Изучаю код. Спасибо за ответ
Странно, что если раскомментирую секцию private в примере с operatorPlusStage1, operatorPlusStage2, то компилятор начинает ругаться, что в методе operator+ идет обращение к закрытой части класса.
operator+ ведь обычный метод класса, который должен иметь доступ ко всем полям и методам класса.