由买买提看人间百态

topics

全部话题 - 话题: printrow
(共0页)
m**o
发帖数: 5261
1
来自主题: Programming版 - c++ print endl
I am not very familiar with c++. I want to print out an integer matrix line
by line. Why the cout< void Matrix::printMatrix(){
for(unsigned int i=0; i {
Matrix::printRow(i);
}
}
void Matrix::printRow(unsigned int rownumber)
{
matrix_row_t row=grid.at(rownumber);
for(unsigned int i=0; i < row.size(); i++)
{
cout< }
cout< }
z****e
发帖数: 2024
2
一个矩阵类,用vector< vector >.结构
问题是能否把下面那个while改成for_each?
#include
#include
#include
#include
using namespace std;
class Matrix{
friend ostream& operator<<(ostream & os, const Matrix & Mat){
vector< vector >::const_iterator iter=Mat._m.begin();
while(iter!=Mat._m.end())//此处能否不用循环?
Mat.printrow( *(iter++), os);//比如改成for_each?
return os;
}
public:
Matrix(){}
Matrix(int row, int column):
_m( vector< vector > (row, vecto
z****e
发帖数: 2024
3
试了ptr_fun(Mat.printrow),还是不行。
郁闷死了。
t****t
发帖数: 6806
4
经过N次试验, 可以这样写. 一开始没注意到bind后面的类型必须是CopyConstructible
, 想着怎么os不能copy. 后面发现os和Mat都是reference, 必须用reference_wrapper
包装一下, 前两天你才问过的.
for_each(Mat._m.begin(), Mat._m.end(), bind(mem_fn(&Matrix::printrow), ref(
Mat), _1, ref(os)));
(请自行添加头文件)
(共0页)