LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Суть же в произвольном количестве?

#include <ranges>
#include <vector>
#include <array>
#include <iostream>
#include <numeric>

int main() {
    std::vector<std::vector<int>> v = {{1,2, 5}, {3,4}, {9}};
    auto r = v | std::views::transform([](auto arr){ return std::reduce(arr.begin(), arr.end()); });
    for (int i : r) {
        std::cout << i << "\n"; // 8 7 9
    }
}

Потому что если суть в разнородной структуре входных данных, то непонятно зачем тут mapcar. Начинать надо с того, как эту структуру хранить, я бы сказал что не надо хранить неопределенную по типу структуру вовсе. Если нужна реально динамика, то она строится поверх статики со своими правилами. Так же и в DB есть строгая таблица но можно перейти к EAV если очень нужно. Думаю работа с таблицами тебе более понятна по роду деятельности, или они тоже динамические у тебя?

Исправление MOPKOBKA, :

Суть же в произвольном количестве?

#include <ranges>
#include <vector>
#include <array>
#include <iostream>
#include <numeric>

int main() {
    std::vector<std::vector<int>> v = {{1,2, 5}, {3,4}, {9}};
    auto r = v | std::views::transform([](auto arr){ return std::reduce(arr.begin(), arr.end()); });
    for (int i : r) {
        std::cout << i << "\n"; // 8 7 9
    }
}

Потому что если суть в разнородной структуре входных данных, то непонятно зачем тут mapcar. Начинать надо с того, как эту структуру хранить, я бы сказал что не надо хранить неопределенную по типу структуру вовсе. Если нужна реально динамика, то она строится поверх статики со своими правилами. Так же и в DB есть строгая таблица но можно перейти к EAV если очень нужно.

Исправление MOPKOBKA, :

Суть же в произвольном количестве?

#include <ranges>
#include <vector>
#include <array>
#include <iostream>
#include <numeric>

int main() {
    std::vector<std::vector<int>> v = {{1,2, 5}, {3,4}, {9}};
    auto r = v | std::views::transform([](auto arr){ return std::reduce(arr.begin(), arr.end()); });
    for (int i : r) {
        std::cout << i << "\n"; // 8 7 9
    }
}

Потому что если суть в разнородной структуре входных данных, то непонятно зачем тут mapcar. Начинать надо с того, как эту структуру хранить, я бы сказал что не надо хранить неопределенную по типу структуру вовсе.

Исправление MOPKOBKA, :

Суть же в произвольном количестве?

#include <ranges>
#include <vector>
#include <array>
#include <iostream>
#include <numeric>

int main() {
    std::vector<std::vector<int>> v = {{1,2, 5}, {3,4}, {9}};
    auto r = v | std::views::transform([](auto arr){ return std::reduce(arr.begin(), arr.end()); });
    for (int i : r) {
        std::cout << i << "\n"; // 8 7 9
    }
}

Потому что если суть в разнородной структуре входных данных, то непонятно зачем тут mapcar.

Исправление MOPKOBKA, :

Суть же в произвольном количестве?

#include <ranges>
#include <vector>
#include <array>
#include <iostream>
#include <numeric>

int main() {
    std::vector<std::vector<int>> v = {{1,2, 5}, {3,4}, {9}};
    auto r = v | std::views::transform([](auto arr){ return std::reduce(arr.begin(), arr.end()); });
    for (int i : r) {
        std::cout << i << "\n"; // 8 7 9
    }
}

Исходная версия MOPKOBKA, :

#include <ranges>
#include <vector>
#include <array>
#include <iostream>
#include <numeric>

int main() {
    std::vector<std::vector<int>> v = {{1,2, 5}, {3,4}, {9}};
    auto r = v | std::views::transform([](auto arr){ return std::reduce(arr.begin(), arr.end()); });
    for (int i : r) {
        std::cout << i << "\n"; // 8 7 9
    }
}