| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4086 人关注过本帖
标题:嵌套vector问题----十万火急
只看楼主 加入收藏
morose2004
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-5-11
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
嵌套vector问题----十万火急
想要把一个vector嵌套里的元素存到另外一个vector嵌套里
程序如下。但是运行出错。不知道啥原因?望高手指点下?说明下为什么不对。如果这种方法不对,正确的应该是什么样的?十万火急!!!!
#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int a[]={1,2,3,4,5,6,7,8,9,10};
    vector<int> temp1(a,a+5),temp2(a+5,a+10);
    vector<vector<int> > vec;
    vec.push_back(temp1);
    vec.push_back(temp2);
    for(int i=0;i<vec.size();i++)
        {
            for(int j=0;j<vec.at(i).size();j++)
            cout<<vec.at(i).at(j)<<" ";
    cout<<endl;
    }
    vector<int> obj1;
    vector<vector<int> > obj;
    for(int i=0;i<vec.size();i++)
        {
            for(int j=0;j<vec.at(i).size();j++)    //可能有问题,不知为什么

                obj1[j]=vec[i][j];
            obj.push_back(obj1);
    }
    cout<<obj.size()<<endl;
    cout<<obj.at(0).size()<<endl;
    cout<<obj.at(1).size()<<endl;
    for(int i=0;i<obj.size();i++)
        {
            for(int j=0;j<obj.at(i).size();j++)
            cout<<obj.at(i).at(j)<<" ";
            cout<<endl;}

    return 0;
}
搜索更多相关主题的帖子: 元素 
2011-06-08 06:09
wavewind
Rank: 3Rank: 3
来 自:浙江
等 级:论坛游侠
帖 子:34
专家分:101
注 册:2011-5-13
收藏
得分:0 
#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int a[]={1,2,3,4,5,6,7,8,9,10};
    vector<int> temp1(a,a+5),temp2(a+5,a+10);  //创建两个vector对象,使用内容方式
    vector< vector<int> > vec;
    vec.push_back(temp1);
    vec.push_back(temp2);
    for(int row=0; row < vec.size() ; row++)
        {
        for(int col=0; col < vec[row].size(); col++)
            cout<<vec[row][col]<<" ";
        cout<<endl;
    }
    //vector<int> obj1;   //创建一个空的vector数组
    vector<vector<int> > obj;          //创建一个空的二维的vector数组
    //for(int x=0;x<vec.size();x++)      //取行数
    //    {
    //        for(int y=0;y<vec.at(x).size();y++)    //取列数。可能有问题,不知为什么

    //            obj1[y]=vec[x][y];
    //        obj.push_back(obj1);
    //}
    obj = vec;
    cout<<obj.size()<<endl;
    cout<<obj.at(0).size()<<endl;
    cout<<obj.at(1).size()<<endl;
    for(int m=0;m<obj.size();m++)
        {
            for(int n=0;n<obj.at(m).size();n++)
            cout<<obj.at(m).at(n)<<" ";
            cout<<endl;}

    return 0;
}
2011-06-08 08:55
wavewind
Rank: 3Rank: 3
来 自:浙江
等 级:论坛游侠
帖 子:34
专家分:101
注 册:2011-5-13
收藏
得分:0 
我有点不明白,既然用vector了,为什么不用其中的方便的实现方法,而非要自己去弄一个,感觉有点画蛇添足的味道。
2011-06-08 08:56
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
obj1[j]=vec[i][j];//改成 obj1.push_back(vec[i][j]);

迭代的是人,递归的是神。
2011-06-08 09:00
morose2004
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-5-11
收藏
得分:0 
4楼的兄弟,我刚开始就用的你说的语句,但是输出结果有问题。
如下:
1,2,3,4,5
6,7,8,9,10
2
5
10
1,2,3,4,5
1,2,3,4,5,6,7,8,9,10
原因没有找到。
2011-06-08 11:56
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
            obj.push_back(obj1);
            obj1.clear();
2011-06-08 12:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
1,2,3,4,5
1,2,3,4,5,6,7,8,9,10
原因没有找到。

------ 这个小女孩视力不好啊,很明显,第一次加入的数据没清掉
2011-06-08 14:54
快速回复:嵌套vector问题----十万火急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017830 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved