注册 登录
编程论坛 数据结构与算法

求教关于一个数据交换的问题

kingshen 发布于 2011-12-25 16:12, 657 次点击
用的语言是C++
我用vector  如vector< vector<My*>*>*  content;  (My是我的类型)
然后就好像二维数组一样加数据
就是vector<My*>* cons;
cons.push_back(我的对象);
content.push_back(cons);这样子加对象
形成如
1  2  3   4
5  6  7   8
9 10 11 12
这样子的内容
我想移动里面的内容 单行的 或者单列的
如3  4  1   2     再移动竖排就成:  5  4  1   2
  5  6  7   8                       3  6  7   8
  9 10 11 12                        4 10 11 12
这样子  但是我移动 竖的话 横的也跟着移动了
哎~~~~~~~~~ 卡住了 求教或者还有什么方法实现我上述的效果
2 回复
#2
无名可用2011-12-26 09:56
程序代码:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v;
    vector< vector<int> > V;
   
    // 添加数据
    for( int i = 0; i < 3; ++ i ) {
        v.clear();
        for( int j = 0; j < 4; ++ j )
            v.push_back( i * 4 + j );
        V.push_back( v );
    }
   
    for( i = 0; i < 3; ++ i ) {
        for( int j = 0; j < 4; ++ j )
            cout << V[i][j] << " ";
        cout << "\n";
    }
   
    // 移动
    int temp = V[0][1];
    V[0][0] = V[1][1];
    V[1][0] = temp;
   
    for( i = 0; i < 3; ++ i ) {
        for( int j = 0; j < 4; ++ j )
            cout << V[i][j] << " ";
        cout << "\n";
    }
   
    return 0;
}


元素之间交换,而不是行之间交换
不晓得这样是不是你要的效果..
#3
kingshen2011-12-26 10:10
回复 2楼 无名可用
谢了 不过我自己解决了。。。。
1