怎样使用智能指针操作二维数组

Falleyes 2014-05-24 04:25:29
自己构思了一个问题,刚接触智能指针,写了半天还是有错:

使用shared_ptr创建一个二维int类型数组,大小为N*M,并且在创建后对数组元素赋值,在全部赋值完毕后,打印这个二维数组。

简单给个代码就好!

...全文
679 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Falleyes 2014-05-24
  • 打赏
  • 举报
回复
引用 2 楼 lm_whales 的回复:
引用 1 楼 qq120848369 的回复:
非常感谢二位!
lm_whales 2014-05-24
  • 打赏
  • 举报
回复
引用 1 楼 qq120848369 的回复:

#include <iostream>
#include "boost/shared_array.hpp"

int main(int argc, char** argv) 
{
    int n = 2, m = 3;
    boost::shared_array< boost::shared_array<int> > matrix(new boost::shared_array<int>[n]);
    for (int row = 0; row < n; ++row)
    {
        matrix[row].reset(new int[m]);
        for (int col = 0; col < m; ++col)
        {
            matrix[row][col] = row + col;
        }
    }
    for (int row = 0; row < n; ++row)
    {
        for (int col = 0; col < m; ++col)
        {
            std::cout << "(" << row << "," << col <<"):" << matrix[row][col] << std::endl;
        } 
    }
    return 0;
}
(0,0):0 (0,1):1 (0,2):2 (1,0):1 (1,1):2 (1,2):3
牛牛的
lm_whales 2014-05-24
  • 打赏
  • 举报
回复
二维int类型数组直接用 array 或者 vector,valarray 还想智能指针,在加一个 shared_ptr的外壳
qq120848369 2014-05-24
  • 打赏
  • 举报
回复

#include <iostream>
#include "boost/shared_array.hpp"

int main(int argc, char** argv) 
{
    int n = 2, m = 3;
    boost::shared_array< boost::shared_array<int> > matrix(new boost::shared_array<int>[n]);
    for (int row = 0; row < n; ++row)
    {
        matrix[row].reset(new int[m]);
        for (int col = 0; col < m; ++col)
        {
            matrix[row][col] = row + col;
        }
    }
    for (int row = 0; row < n; ++row)
    {
        for (int col = 0; col < m; ++col)
        {
            std::cout << "(" << row << "," << col <<"):" << matrix[row][col] << std::endl;
        } 
    }
    return 0;
}
(0,0):0 (0,1):1 (0,2):2 (1,0):1 (1,1):2 (1,2):3

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧