Помогите выбрать реализацию метода из двух вариантов - calc1() и calc2():
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <execution>
class Test
{
public:
Test() {};
~Test() {};
void add_eq(std::function<double(void)> f)
{
_equations.push_back(f);
}
// version 1
std::vector<double>& calc1()
{
_v.resize(_equations.size());
std::generate(
std::execution::par,
_v.begin(), _v.end(),
[this, n = 0]() mutable
{
return _equations[n++]();
}
);
return _v;
}
// version 2
std::vector<double>& calc2()
{
std::vector<int> inds(_equations.size());
std::iota(inds.begin(), inds.end(), 0);
_v.resize(_equations.size());
std::for_each(
std::execution::par,
inds.begin(), inds.end(),
[this](const int& n)
{
_v[n] = _equations[n]();
}
);
return _v;
}
private:
std::vector<std::function<double(void)>> _equations{};
std::vector<double> _v{};
};
Оба ли варианта имеют право на жизнь (учитывая использование std::execution::par)? И какой вариант более предпочтителен? Меня смущают оба варианта, поэтому и решил посоветоваться.
Тут больше std::transform подойдёт
_v.resize(_equations.size());
std::transform(
std::execution::par,
_equations.begin(), _equations.end(),
_v.begin(),
[](const auto& f) { return f(); }
);
Идея какая, я открываю файл и считываю его построчно, каждую строку я конвертирую в char вывожу на экран и отправляю при помощи send() на tcp серверФайл...
В стандарте при регистрации пользователя записывает логин пасс в MySql базу а пароль еще и шифрует, нужно сделать регистрацию в отдельную MySql базу,...
не приходит в голову данная реализация, мне надо оповестить за день клиента что у него заканивается оплачиваемый период(на неделю, две недели