⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iter.cpp

📁 A C++ class library for scientific computing
💻 CPP
字号:
#include "testsuite.h"#include <blitz/array.h>#ifdef BZ_HAVE_STL#include <iterator>#include <algorithm>BZ_USING_NAMESPACE(std)#endifBZ_USING_NAMESPACE(blitz)void check(const Array<int,2>& A, const Array<int,1>& b){    int i = 0;    Array<int,2>::const_iterator iter = A.begin(), end = A.end();    while (iter != end)    {        BZTEST((*iter) == b(i++));        ++iter;    }    BZTEST(i == A.numElements());}#ifdef BZ_HAVE_STLtemplate <typename _Iter>void checkInterface(_Iter iter){    typedef typename iterator_traits<_Iter>::value_type value_type;    typedef typename iterator_traits<_Iter>::reference reference;    typedef typename iterator_traits<_Iter>::pointer pointer;    value_type x = *iter;    BZTEST(*iter == x);    reference y(x);    pointer p = &(*iter);    BZTEST(*p == y);}#endif // BZ_HAVE_STLint main(){  {    Array<int,2> A(2,3);    A = 0, 1, 2,        3, 4, 5;    Array<int,1> b(6);    b = 0, 1, 2, 3, 4, 5;    check(A, b);  }  {    Array<int,2> A(2,3,FortranArray<2>());    A = tensor::i * 3 + tensor::j;    Array<int,1> b(6);    b = 4, 7, 5, 8, 6, 9;    check(A,b);  }#if 0  {    Array<int,2> B(5,5,FortranArray<2>());    B = tensor::i + 5 * tensor::j;    B.reverseSelf(1);    check(B);  }#endif  {    Array<int,2> B(6,6,FortranArray<2>());    B = tensor::i * 6 + tensor::j;    Array<int,1> b(12);    b = 7, 13, 19, 8, 14, 20, 9, 15, 21, 10, 16, 22;    check(B(Range(1,3),Range(1,4)), b);  }  {    Array<int,2> B;    Array<int,2>::iterator iter = B.begin(), end = B.end();    BZTEST(iter == end);  }#ifdef BZ_HAVE_STL  {    Array<int,2> A(3,3);    A = 1, 2, 3,        3, 2, 1,        4, 3, 2;    replace(A.begin(), A.end(), 3, 0); // replace each 3 with 0    Array<int,1> b(9);    b = 1, 2, 0, 0, 2, 1, 4, 0, 2;    check(A,b);    Array<int,2>::iterator iter;    iter = adjacent_find(A.begin(),A.end());    TinyVector<int,2> pos = iter.position(), ans(0,2);    BZTEST(pos[0] == ans[0] && pos[1] == ans[1]);    checkInterface(iter);    const Array<int,2>& B(A);    Array<int,2>::const_iterator citer = B.begin();    checkInterface(citer);  }#endif // BZ_HAVE_STL}

⌨️ 快捷键说明

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