转置矩阵

转置矩阵

作者:qmroom

为解决 http://zhidao.baidu.com/question/74108585.html 上的提问

使用技术:重载输出流,输出流迭代器,STL排序,文件操作

  1. //重写了,vc6下编译通过 
  2. //作者:qmroom 
  3. //2008-11-04 9:00
  4. //blog:http://blog.csdn.net/qmroom 
  5. //Email:qmroom#126.com        #=@ 
  6. #include "stdafx.h"
  7. #include <iostream>
  8. #include <fstream>
  9. #include <vector>
  10. #include <algorithm>
  11. using namespace std;
  12. struct Trituple
  13. {
  14.     int row;
  15.     int col;
  16.     double value; 
  17.     Trituple():row(-1),col(-1),value(0){}
  18.     //friend ostream& operator<<(ostream &os, const Trituple &tpl);
  19. };
  20. ostream& operator<<(ostream &os, const Trituple &tpl)
  21. {
  22.     os << tpl.row << "/t" << tpl.col << "/t" << tpl.value;
  23.     return os;
  24. }
  25. struct ltTrituple
  26. {
  27.     bool operator()(const Trituple &pos1, const Trituple &pos2) const
  28.     {
  29.         if (pos1.row != pos2.row)
  30.             return pos1.row < pos2.row;
  31.         return pos1.col < pos2.col;
  32.     }
  33. };
  34. typedef vector<Trituple> VT;
  35. typedef vector<Trituple>::const_iterator Iterator;
  36. int main(int argc, char* argv[]) 
  37. {
  38.     Trituple    tpl;
  39.     int         nTemp;
  40.     VT          vt;
  41.     Iterator    itr;
  42.     ifstream fin("Trituple.txt");
  43.     while(!fin.eof())
  44.     {
  45.         fin>>tpl.row>>tpl.col>>tpl.value;
  46.         if (!fin.eof())
  47.             vt.push_back(tpl);
  48.     }
  49.     fin.close();
  50.     for (itr = vt.begin(); itr != vt.end(); itr++)
  51.     {
  52.         nTemp = itr->row;
  53.         (int)(itr->row) = itr->col;
  54.         (int)(itr->col) = nTemp;
  55.     }
  56.     sort(vt.begin(), vt.end(), ltTrituple());   
  57.     copy(vt.begin(), vt.end(), ostream_iterator<Trituple>(cout, "/n"));
  58.     return 0;
  59. /*
  60. Output:
  61. 0       1       3
  62. 1       4       9
  63. 2       0       2
  64. 3       1       -11
  65. 3       2       -6
  66. 3       5       -8
  67. 4       4       19
  68. 5       3       -17
  69. 6       5       -52
  70. //Trituple.txt 
  71. 0 2 2 
  72. 1 0 3 
  73. 1 3 -11 
  74. 2 3 -6 
  75. 3 5 -17 
  76. 4 1 9 
  77. 4 4 19 
  78. 5 3 -8 
  79. 5 6 -52 
  80. */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值