VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1497|回复: 11

用vector创建的二维数组,怎样用iterator操作啊?

[复制链接]

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-15 15:40:01 | 显示全部楼层 |阅读模式
如这样定义一个二维数组:
vector< vector<int> >        ivec;

应该怎样用iterator进行初始化呢?
回复

使用道具 举报

0

主题

49

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-1-19 00:36:01 | 显示全部楼层
for(vector<vector<int> >::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
{
for(vector<int>::iterator iiter = (*iter).begin(); iiter != (*iter).end(); ++iiter)
{
  *iiter = ??;
  ..........
}
}
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-1-19 23:36:01 | 显示全部楼层
vector< int > ivec(10);
一维数组可以这样设置数组的存储空间,那二维的应该怎样呢?
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-22 13:27:01 | 显示全部楼层
vector<vector<int> >   ivec(2);
        typedef vector<int>::iterator Iter;
        typedef vector<vector<int> >::iterator  IIter;
        IIter iiter;
        Iter iter;
        for (iiter=ivec.begin(); iiter!=ivec.end(); iiter++)
        {
                (*iiter).resize(3);
                for (iter=(*iiter).begin(); iter!=(*iiter).end(); iter++)
                        cin >> (*iter);
        }
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-1-22 14:09:01 | 显示全部楼层
vector< vector<int> >ivec;
第一维的iterator指向的是vector<int>,第二维的iterator指向的是int。
回复

使用道具 举报

0

主题

24

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-25 16:00:02 | 显示全部楼层
vector< vector<int> >ivec;
-------------------------------------------------------------------------------------
此处你定义的是空vector,无法用iterator进行初始化,你应该用push_back操作加入元素。
或者,你可以不定义空vector,而给定一个初始大小。
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-1-27 16:36:01 | 显示全部楼层
还请问boxer2005 :
对于001250200 的所说的方法vector<vector<int> >   ivec(2);,这样是定义一个两行的二维数组,但并没有指定列数,那应该怎样定义一个指定行和列的二维数组呢?
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-1-27 18:18:01 | 显示全部楼层
vector指定了行了列也意义不大的,它总是可以随时变化。
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-1-27 19:54:02 | 显示全部楼层
倘若你的数据的维数信息在编译时就能确定,而且此后不再变化,那么用原生数组也是不错的。
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-1-27 23:00:01 | 显示全部楼层
开始时同时指定多维的,可以像这样:

vector<vector<int> > a(3, vector<int>(4));//相当于一个3×4的整数数组。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表