assign.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 74 行

CPP
74
字号
// Copyright 2002 The Trustees of Indiana University.// Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)//  Boost.MultiArray Library//  Authors: Ronald Garcia//           Jeremy Siek//           Andrew Lumsdaine//  See http://www.boost.org/libs/multi_array for documentation.// // assign.cpp - Test out operator=() on the different types// //#include "generative_tests.hpp"#include "boost/array.hpp"#include "boost/multi_array.hpp"#include "boost/cstdlib.hpp"#include <algorithm>#include <iostream>bool equal(const int& a, const int& b){  return a == b;}template <typename ArrayA, typename ArrayB>bool equal(const ArrayA& A, const ArrayB& B){  typename ArrayA::const_iterator ia;  typename ArrayB::const_iterator ib = B.begin();  for (ia = A.begin(); ia != A.end(); ++ia, ++ib)    if (!equal(*ia, *ib))      return false;  return true;}template <typename Array>void access(Array& A, const mutable_array_tag&) {  assign(A);  typedef boost::multi_array<int,3> array3;  int insert[] = {    99,98,97,96,    95,94,93,92,    91,90,89,88,    87,86,85,84,    83,82,81,80,    79,78,77,76  };  const int insert_size = 2*3*4;  array3 filler(boost::extents[2][3][4]);  filler.assign(insert,insert+insert_size);  A = filler;  BOOST_CHECK(equal(A,filler));  ++tests_run;}template <typename Array>void access(Array&, const const_array_tag&) {}int test_main(int,char*[]) {  return run_generative_tests();}

⌨️ 快捷键说明

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