问题标签 [iota]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
enums - 类型化常量声明列表
我希望创建一个具有以下属性的“类枚举”常量列表:
- 每个标识符的值是连续的,有一些间隙。(我相信 iota 和空白标识符在这方面有帮助)。
- 标识符是模块私有的。
- 这些常量只能与相同类型的其他常量进行比较。
枚举基于enum fuse_opcode
来自FUSE。这是我想要完成的一些代码(也是非常错误的):
c++ - 他们为什么不添加iota的运营商版本?
iota 模板函数被添加到标准库中,以用递增的值序列填充迭代器范围。
大多数其他模板<numeric>
都有接受用户指定运算符的版本。有这个:
如果您不想(或不能)为 Tp 重载 operator++() 会很方便。我会发现这个版本比默认的 operator++() 版本更有用。<
c++ - 如何为 std::fill() 使用 C++0x lambdas 局部变量?
所以我试图测试一个 lambda 在它使用的范围内访问局部变量,大致基于 Bjarne 在 C++0x FAQS 页面上的一个简单示例: http ://www2.research.att.com/ ~bs/C++0xFAQ.html#lambda
当我尝试这个简单的测试代码时:
我得到错误:
我假设这个 errmsg 表明 std::fill() 签名需要一个 const Type& 才能用于新的值元素分配。
但是,如果我能够为此目的使用 fill(),如 Bjarne 的示例所示,我不需要在 lambda 捕获子句中使用引用 '[&count]' 来重新分配原始通过'return ++count;'索引元素值和递增计数var lambda 语句块?
我承认我还不太了解这些 lambda!:)
c++ - 什么是 iota_n 的良好实现(STL 中缺少算法)
在 C++11 中,STL 现在有了一个std::iota
函数(参见参考资料)。然而,与 , 相比std::fill_n
,std::generate_n
没有std::iota_n
。什么是一个好的实现呢?std::generate_n
直接循环(备选方案 1)或使用简单 lambda 表达式(备选方案 2)的委托?
备选方案 1)
备选方案 2)
两种替代方案都会通过优化编译器生成等效代码吗?
更新:结合了@Marc Mutz 的优点,还可以在其目标点返回迭代器。与 C++98 相比,这也是std::generate_n
C++11 中的更新方式。
haskell - 在 Haskell 中实现 Iota
Iota 是一种非常小的“编程语言”,只使用一个组合器。我有兴趣了解它的工作原理,但是以我熟悉的语言查看实现会很有帮助。
我找到了一个用 Scheme 编写的 Iota 编程语言的实现。不过,我在将其翻译成 Haskell 时遇到了一些麻烦。这很简单,但我对 Haskell 和 Scheme 都比较陌生。
您将如何在 Haskell 中编写等效的 Iota 实现?
c++ - 设置 std::vector到一个范围
设置范围的最佳方法是什么std::vector<int>
,例如 3 到 16 之间的所有数字?
static - 静态数组的展开循环
如果我调用函数
使用静态数组,D 会foreach
在发布模式下自动为我展开吗?
如果不能
用于实现展开而不是foreach
?
此外,DMD 是否有一个生成汇编代码的标志,以便我自己将来可以调查 DMD 生成的代码?
更新:到目前为止,这是我的解决方案。
它看起来好吗?
sql - SQL语句生成一列,其值为记录索引
我有一些 SQL 表,比如单列 c1:
c1 |
---|
10 |
3 |
1 |
10 |
5 |
现在,我想发出一个 SQL 命令(不是我的 DBMS 的某些操作,我故意没有提到),这导致我的表是:
c1 | 记录索引 |
---|---|
10 | 0 |
3 | 1 |
1 | 2 |
10 | 3 |
5 | 4 |
很简单……这可以吗?显然,你事先并不知道表的长度,所以没有 SQL 插入或类似的技巧。
注意:我想要一个一般性的答案,但要具体一点 - 我正在使用MonetDB。
c++ - 用 iota 初始化一个 unique_ptr 的容器
为了了解 C++11 的复杂性,我玩unique_ptr
了一下。
我想知道,有什么方法可以iota
用来初始化 Containerunique_ptr
吗?
我从运行良好的 unique-ptr-less 解决方案开始:
现在让我们尽可能使用unique_ptr
这显然失败了。原因:
- 虽然我标记
three
为move
a&&
这可能不足以将初始值复制/移动到容器中。 ++initValue
也不会工作,因为initValue
是 typeunique_ptr<int>
,并且没有operator++
定义。但是:我们可以定义一个自由函数unique_ptr<int> operator++(const unique_ptr<int>&);
,并且至少可以解决这个问题。- 但是再次不允许复制/移动该操作的结果,
unique_ptr
这一次我看不到如何欺骗编译器使用move
.
嗯,这就是我停下来的地方。我想知道我是否错过了一些关于如何告诉编译器他可能move
是operator++
. 还是还有其他障碍?
go - Iota 在 Go 地图上定义键?
假设我们有一个map[int]string
并且我们想像这样定义它:
我想手动维护这些值,因为它们没有模式,但键有。有没有办法像我们使用枚举值一样维护密钥列表1 << 1 + iota
?
我不是在问是否可以将 iota 用作映射键(不幸的是它不是 AFAIK),只要有一种同样优雅的方法可以在定义的序列上创建键。