where.cpp

来自「c++经典教材 Blitz++ v0.8」· C++ 代码 · 共 35 行

CPP
35
字号
/***************************************************************************** * where.cpp     Blitz++ Vector<T> example, illustrating where(X,Y,Z) *               expressions. *****************************************************************************/#include <blitz/vector-et.h>#include <blitz/vecwhere.h>BZ_USING_NAMESPACE(blitz)int main(){    Vector<int> x = Range(-3,+3);   // [ -3 -2 -1  0  1  2  3 ]    // The where(X,Y,Z) function is similar to the X ? Y : Z operator.    // If X is logical true, then Y is returned; otherwise, Z is    // returned.    Vector<int> y = where(abs(x) > 2, x+10, x-10);    // The above statement is transformed into something resembling:    //    // for (unsigned i=0; i < 7; ++i)    //     y[i] = (abs(x[i]) > 2) ? (x[i]+10) : (x[i]-10);    //    // The first expression (abs(x) > 2) can involve the usual    // comparison and logical operators: < > <= >= == != && ||     cout << x << endl         << y << endl;    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?