免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2216 | 回复: 5
打印 上一主题 下一主题

一个vector含vector的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-03 00:30 |只看该作者 |倒序浏览
我在我的程序里本来是用了二维数组,整个程序当然没问题。但是因为我现在想用vector含vector数据结构,可是老是出现段错误的提示。我把有问题的部分提了出来写成个小小程序作测试。程序如下:

#include<vector>;
#include<iostream>;

using namespace std;

int main(void){
  vector< vector<int>; >; lit;
  int nodes, bits, litscounter;
  bits = 5;
  litscounter = 0;
  for (int i=0;i<nodes;i++){
    for(int j=0;j<bits;j++){
      lit[j] = ++litscounter;
    }
  }
  for (int i=0;i<nodes;i++){
    vector<int>;::iterator it;
    for(lit.begin();it!=lit.end();it++){
      cout << *it << " ";
    }
    cout << endl;
  }
  return 0;
}

我把lit[j]=++litscounter 改成了 lit.push_back(++litscounter), 也是不行。

[robbe@JinJia c_example]$ g++ -o vector vector.cpp
[robbe@JinJia c_example]$ ./vector
段错误

那位能提示一下,哪里的问题?多谢

论坛徽章:
0
2 [报告]
发表于 2005-09-03 00:32 |只看该作者

一个vector含vector的问题

vector< vector<int>; >; lit;
我记的这样子好象编译不过去的

typedef vector<int>;   vxxx;试试

论坛徽章:
0
3 [报告]
发表于 2005-09-03 00:50 |只看该作者

一个vector含vector的问题

我编译没有报错,就是说编译没问题,执行的时候出现段错误。

论坛徽章:
0
4 [报告]
发表于 2005-09-03 00:52 |只看该作者

一个vector含vector的问题

我大致该了一下.
你的程序里面nodes没有初始化.

在访问数据的时候,还是尽量使用迭代器吧.
这样应当是正确的.


  1. #include<vector>;
  2. #include<iostream>;
  3. #include <iomanip>;

  4. using namespace std;

  5. int main(void)
  6. {
  7.         vector< vector<int>; >; lit;
  8.         int nodes, bits, litscounter;
  9.         bits = 5;
  10.         litscounter = 0;
  11.         nodes = 10;

  12.         for (int i = 0; i < nodes; i++)
  13.         {
  14.                 vector<int>; int1DArray;
  15.                 for (int j = 0; j < bits; j++)
  16.                         int1DArray.push_back(++litscounter);
  17.                 lit.push_back(int1DArray);
  18.         }
  19.         for (vector< vector<int>; >;::iterator iter2D = lit.begin(); iter2D != lit.end(); iter2D++)
  20.         {
  21.                 for (vector<int>;::iterator iter1D = (*iter2D).begin(); iter1D != (*iter2D).end(); iter1D++)
  22.                 {
  23.                         cout << setw(5) << *iter1D;
  24.                 }
  25.                 cout << endl;
  26.         }
  27.        
  28.         return 0;
  29. }

复制代码

论坛徽章:
0
5 [报告]
发表于 2005-09-03 00:58 |只看该作者

一个vector含vector的问题

太谢谢了。

论坛徽章:
0
6 [报告]
发表于 2005-09-03 19:36 |只看该作者

一个vector含vector的问题

#include<vector>;
#include<iostream>;

using namespace std;

int main(void)
{
    vector< vector<int>; >; lit;
    //初始化     
    int nodes = 5;
    int bits = 5;
    int litscounter = 0;
   
   
    for (int i=0;i<nodes;i++)
    {
                vector<int>; vec;
                for (int j = 0; j < bits; j++ )
                {
                        vec.push_back(litscounter++);
                }
                lit.push_back(vec);
    }

        vector< vector<int>; >;::iterator it_lit = lit.begin();
    for ( ;it_lit < lit.end(); it_lit++)
    {
                vector<int>;::iterator it_vec = (*it_lit).begin();
        for(; it_vec != (*it_lit).end() ; it_vec++)
        {
            cout << *it_vec << endl;
        }
        cout << endl;
    }

    return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP