如何创建包含以下值f(0),f(1),…,f(N-1)的const std::数组,其中f是任何函数:静态constexpr size_t f(int index)?当我确切地知道N时,我显然可以写
const std::array<size_t, 5> a = {f(0), f(1), f(2), f(3), f(4)}
如果想在不创建外部函数的情况下对其进行const-initialize,也可以这样做:
void SomeFunction() {
const auto my_array = [](){
auto a = array<SomeType, N>();
for (size_t i = 0; i < a.size(); ++i)
a[i] = f(i);
return a;
}(); // <-- Note that the lambda executes right away
DoSomeStuff(my_array);
}
可能需要抛光,但我就是这么想的:
template <std::size_t... ns, typename Fn>
auto fill_helper(std::integer_sequence<std::size_t, ns...>, Fn&& fn) -> std::array<decltype(fn(std::size_t())), sizeof...(ns)> {
return {{fn(ns)...}};
}
template <std::size_t N, typename Fn>
auto fill(Fn&& fn) {
using seq = std::make_integer_sequence<std::size_t, N>;
return fill_helper(seq(), std::forward<Fn>(fn));
}
int main() {
auto plus5 = [](std::size_t index) {
return index + 5;
};
auto const as = fill<5>(plus5);
for (auto&& a: as)
std::cout << a;
}
优点是使用正确的值初始化数组,而不是先初始化然后赋值。
创建需要任意复杂初始化的常量的一般技术是,只需编写一个返回所需值的函数,然后在常量的初始值设定项中调用该函数。例如:
template <typename T, size_t N>
array<T, N> init_from_f() {
array<T, N> a;
for (size_t i = 0; i < N; ++i)
a[i] = f(i);
return a;
}
const auto const_array = init_from_f<sometype, 42>();
我有以下服务器.js获取路由 这是我的客户端js,我用jQuery获取完全相同的get 当我打开index.html时,它会正确显示用户交互界面,并在我的终端中执行我的server.js它会正确显示url。我无法完成的是如何使用我的jQuery接收到的数据来填充我的html中的表。我的表将填充从我的endpoint获取的url。 我有一些nodejs的背景,但我不能总结这个。
你有时能看到用另一种不同的接口(不同参数和返回值)实现addTime这样的函数。addTime函数不是在每次调用时都创建一个新对象,而是要求调用者提供一个“空对象”用以存储其结果。请将下述代码和之前版本做比较: void addTimeFill (const Time& t1, const Time& t2, Time& sum) { sum.hour = t1.hour + t2.hou
我有一个数据网格,其中组合框是从Db填充的。 我试图实现的是,当我在“Esercizio”列中选择一些内容时,“Video”列的单元格会自动填充Db的“link_video”列中的相应值。 因此,如果我选择“回扣”,我需要在文本框单元格中看到来自db的回扣链接视频。 这是我用来在表单加载时填充组合框的代码: private void Myform_Load(对象发送方,EventArgs e) {
本文向大家介绍基于jQuery的表单填充实例,包括了基于jQuery的表单填充实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇基于jQuery的表单填充实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。