Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1582
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-15 18:55
文章分类
文章存档

2017年(1)

我的朋友
最近访客

分类: C/C++

2017-10-15 21:02:50

使用clear清除vector的元素后再使用push_back输入元素时,编译无错,运行会出现如下问题,所以需要改变vector元素最好是使用aa[i][j]重新赋值即可,除非不使用该vector了,不然还是慎用clear。

本人C++小白,并不太清楚问题出在na谨以此记录学习遇到的问题,欢迎编程达人们指正。


附学习vector的测试代码:

点击(此处)折叠或打开

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <vector>

  4. using namespace std;

  5. int main()
  6. {
  7.     int l=5, n=3;
  8.     vector<vector<int> > aa(l, vector<int>(n));
  9.     int m, i, j;

  10.     for (i = 0; i<5; i++)
  11.     {
  12.         for (j = 0; j<3; j++)
  13.         {
  14.             cout << "aa[" << i << "][" << j << "]: " << aa[i][j] << "\t";
  15.         }
  16.         cout << endl;
  17.     }

  18.     cout << "\n\n";

  19.     /*for (i = 0; i<l; i++)
  20.     {
  21.         for (j = 0; j<n; j++)
  22.         {
  23.             m = rand();
  24.             cout << "m: " << m << "\t";
  25.             if (m>10000)
  26.             {
  27.                 aa[i][j] = m;
  28.             }
  29.             else
  30.             {
  31.                 aa[i][j] = 0;
  32.             }
  33.         }
  34.         cout << endl;
  35.     }

  36.     for (i = 0; i<5; i++)
  37.     {
  38.         for (j = 0; j<3; j++)
  39.         {
  40.             cout << "aa[" << i << "][" << j << "]: " << aa[i][j] << "\t";
  41.         }
  42.         cout << endl;
  43.     }

  44.     cout << "\n\n";

  45.     for(i=2;i<4;i++)
  46.     {
  47.         for(j=1;j<2;j++)
  48.         {
  49.             aa[i][j] = i*j;
  50.         }
  51.     }

  52.     for (i = 0; i<5; i++)
  53.     {
  54.         for (j = 0; j<3; j++)
  55.         {
  56.             cout << "aa[" << i << "][" << j << "]: " << aa[i][j] << "\t";
  57.         }
  58.         cout << endl;
  59.     }

  60. //    aa.clear();

  61.     cout << "\n\n";*/
  62. //没有clear时,aa通过push_back传入的元素在原有矩阵的后面继续输入了!!
  63.     vector<int> bb;
  64.     for (i = 0; i<l; i++)
  65.     {
  66.         for (j = 0; j<n; j++)
  67.         {
  68.             m = rand();
  69.             cout << "m: " << m << "\t";
  70.             if (m>10000)
  71.             {
  72.                 bb.push_back(m);
  73.             }
  74.             else
  75.             {
  76.                 bb.push_back(0);
  77.             }
  78.         }
  79.         aa.push_back(bb);
  80.         bb.clear();
  81.     }

  82.     for (i = 0; i<10; i++)
  83.     {
  84.         for (j = 0; j<3; j++)
  85.         {
  86.             cout << "aa[" << i << "][" << j << "]: " << aa[i][j] << "\t";
  87.         }
  88.         cout << endl;
  89.     }



  90.     /*for (i = 0; i<5; i++)
  91.     {
  92.         for (j = 0; j<3; j++)
  93.         {
  94.             cout << "aa[" << i << "][" << j << "]: " << aa[i][j] << "\t";
  95.         }
  96.         cout << endl;
  97.     }*/

  98.     return 0;
  99. }


阅读(401) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~