gpt4 book ai didi

c++ - C++ 中的 K/APL 风格编程?

转载 作者:可可西里 更新时间:2023-11-01 16:39:05 24 4
gpt4 key购买 nike

我正在用 C++ 编写代码,但我真的很喜欢 K/APL 的面向数组的风格。

有谁知道一组很好的运算符重载技巧/宏/...以允许在 C++ 中进行一些 K/APL 风格的编程?

谢谢!

最佳答案

对于数学,Blitz++是最大的数组编程库。以下是文档中的一些示例:

#include <blitz/array.h>

using namespace blitz;

Array<int, 1> x(10); // one-dimensional array of 10 int's
firstIndex i; // place holder index
x = 10 * i; // x == 0, 10, 20, 30...
x = 10 * tensor::i; // a short form of the above two expressions

// another example, with array-level assignments and arithmetic
Array<int, 1> a(4), b(4), c(4);
a = 1, 2, 3, 4;
b = 5, 6, 7, 8;
c = a + b;

Blitz++ 使用 expression templates ,一种类似于惰性求值的模板元编程技术。因此,编译器生成的代码不会使用任何不必要的临时变量,并且应该与手写循环一样快。

这是等效的 k 代码,感兴趣的可以:

  x:10*!10
x
0 10 20 30 40 50 60 70 80 90

a:1 2 3 4
b:5 6 7 8
c:a+b
c
6 8 10 12

关于c++ - C++ 中的 K/APL 风格编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com