$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [multi_array] std::swap and subarray
From: alfC (alfredo.correa_at_[hidden])
Date: 2010-02-20 00:38:43
> I think this solves the problem, (except for the fact that there it
> may be a more efficient way by swapping element by element).
complete code:
-- #include<boost/multi_array.hpp> namespace std { template <typename TValue, boost::detail::multi_array::size_type K> void swap( boost::detail::multi_array::sub_array<TValue, K> lhs, boost::detail::multi_array::sub_array<TValue, K> rhs) { boost::multi_array<TValue, K> tmp = lhs; lhs = rhs; rhs = tmp; } } // namespace std #include<iostream> int main(){ boost::multi_array<double, 2> a; a.resize( boost::extents[2][2] ); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) a[i][j] = (i+1)*10 + j+1; // a[0].swap(a[1]); std::swap( a[0], a[1] ); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) std::cout << a[i][j] << " "; std::cout << std::endl; } return 0; } --