二维数组问题-怎么用c++写 二维数组 的旋转

问题描述

怎么用c++写 二维数组 的旋转

我是新手 想用c++编写一个可以旋转的二维数组 但不知道怎么写 能不能给我讲一下或者告诉我那些书中可以学习 谢谢

解决方案

http://blog.csdn.net/edcvf3/article/details/7726422
http://www.cppblog.com/flyinghearts/archive/2010/12/23/137331.html
http://blog.sina.com.cn/s/blog_4aab244f0100ia08.html

解决方案二:

二维数组旋转

解决方案三:

什么叫做可旋转?就是数组反转么?

解决方案四:

下面是个模版类:

 template<class T, int row=0, int column=0>
class CMyArray
{
public:
    CMyArray()
        :m_pData(NULL)
        ,m_nRow(row)
        ,m_nColumn(column)
    {
        if ( m_nRow>0 && m_nColumn>0 )
            Allocate();
    }
    ~CMyArray()
    {
        Free();
    }
    bool Resize(const int nRow, const int nColumn)
    {
        if ( nRow<=0 || nColumn<=0 )
            return false;
        m_nRow      = nRow;
        m_nColumn   = nColumn;
        Allocate();
        return true;
    }
    T GetAt(const int nRow, const int nColumn)
    {
        if ( nRow>=m_nRow || nColumn>=m_nColumn )
            return T();
        return *(m_pData+nRow*m_nColumn+nColumn);
    }
    void SetAt(const int nRow, const int nColumn, const T& data)
    {
        if ( nRow>=m_nRow || nColumn>=m_nColumn )
            return ;
        *(m_pData+nRow*m_nColumn+nColumn) = data;
    }
protected:
    void Allocate()
    {
        Free();
        m_pData = (T*)malloc(m_nRow*m_nColumn*sizeof(T));
    }
    void Free()
    {
        if ( m_pData )
        {
            free(m_pData);
            m_pData = NULL;
        }
    }
private:
    T*  m_pData;
    int m_nRow;
    int m_nColumn;
};

矩阵旋转就参照百度知道的数学关系写一下就行:
矩阵旋转

解决方案五:

http://zhidao.baidu.com/link?url=gY9R3KTOmBp7jhFx-CODV89jAN30T8YMWwN9nJltj95T0EnAsoeUR2AhNFJL4Hin3BlS_stfnq7etJeyQC9dN_

解决方案六:

不太清楚旋转的具体要求,是90度还是180度,逆时针还是顺时针

时间: 2024-09-17 04:11:52

二维数组问题-怎么用c++写 二维数组 的旋转的相关文章

JAVA_数组_泛型:我写了一个数组结合泛型的通用求和方法,求帮忙优化,写的太烂了

问题描述 JAVA_数组_泛型:我写了一个数组结合泛型的通用求和方法,求帮忙优化,写的太烂了 =====<求求大神帮我优化下啊,我写的太烂了>==== public static void main(String[] args) { Number[] num1 = {2, 3, 3, 4, 5}; //Integer Number[] num2 = {1.1, 2.0, 3.0, 4.0, 5.0}; //Double System.out.println(num1[0].getClass()

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h>   void main(void) {     int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };     for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节     {         printf("\n%p,%d", p, *p);    

link中除了二维数组,还有什么情况下可以在数组后面再跟上数组?

问题描述 link中除了二维数组,还有什么情况下可以在数组后面再跟上数组? link中除了二维数组,还有什么情况下可以在数组后面再跟上数组? 解决方案 只要支持索引器的都可以,比如说 List<int[]> List<int>[] List<List<int>> int[][]

(教学思路 C#数组二)数组的属性、foreach遍历、交错数组与矩形数组的区别

本次课我们要学习数组的属性.foreach的用法.我上节课提到的交错数组,我会通过多个例子的演示讲解让你们理解交错数组定义已经与规则的二维数组(矩形数组)的区别加深理解,下一节我们还将学习数组的常用方法. 下面我们来学习一下数组的属性,什么是属性呢?在以后学习类的时候我会给大家详细的讲解,现在我给你们举个现实生活的例子,帮助你们理解什么叫属性,属性一般都是名词,表示它的所有者(即对象)拥有的特性,如抹布(对象)的颜色.大小(属性),而下一节将学习的数组的方法一般是动词,如抹布的功能,抹布(对象)

java读文件后的数据怎么写到一个数组中 数据格式如下

问题描述 java读文件后的数据怎么写到一个数组中 数据格式如下 解决方案 简单的写了一下,希望对你有帮助: public class Test { // 数组列数 private static final int COLUMN_COUNT = 3; public static void main(String[] args) { BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(new F

zxing 二维码-zxing 3.0.1生成二维码

问题描述 zxing 3.0.1生成二维码 zxing 3.0.1生成二维码,这么写怎么就是不对,MatrixToImageWriter类找不到,应该怎么写? String contents = ""今天,我们来简单聊聊google开源项目--ZXing(二维条码编解码)""; Hashtable<EncodeHintType String> hints = new Hashtable<EncodeHintType String>(); hi

c语言-C语言写通讯录用数组好还是链表好?

问题描述 C语言写通讯录用数组好还是链表好? C语言写通讯录,需要每次打开有数据,需要保存数据,删除,添加,修改..... 用链表是不是还要每次打开后读取文件数据到链表中,感觉太麻烦,到底用数组好还是链表更合适?如果用链表,如何实现链表数据的保存和读取? 解决方案 二者都属于一种数据结构 从逻辑结构来看 1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况.当数据增加时,可能超出原先定义的元素个数:当数据减少时,造成内存浪费:数组可以根据下标直接存取. 2. 链表动态地进行

广告-HTMLCollection[]如何转为成数组?oc中可以写js吗?

问题描述 HTMLCollection[]如何转为成数组?oc中可以写js吗? HTMLCollection[]如何转为成数组?oc中可以写js吗?在UIWebView中删除网页上的广告 解决方案 转为数组定义个数组然后拷贝进数组里面,hc里面的dom对象无法删除的 oc不懂是什么,删除广告可以 xxx.parentNode.removeChild(xxx) 解决方案二: 用一个for循环即可 function changeArray (aEle){ var aResult=[]; for(va

Android项目实战(二十八):使用Zxing实现二维码及优化实例

前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中我们也许只会用到二维码的扫描和生成两个功能,所以不必下载完整的jar包,使用简化版的即可,下文可见. 这篇文章讲述: 1.如果快速在项目中集成zxing,实现扫描和生成二维码功能 2.根据项目需求去修改源码实现我们的要求并进行优化 一.快速集成zxing二维码 1.下载库文件 :http://xiazai.jb51.net/201611/yuanma/ZXingB