容器clear之后,重新resize,怎么容器前面多了那么多空格?C/C++ code#include vector#include iostream#
容器clear之后,重新resize,怎么容器前面多了那么多空格?
- C/C++ code
#include <vector>#include <iostream>#include <iomanip>using namespace std;int main (void) { int m[][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; vector<vector<int> > vv; // 二维向量 // vv.clear(); // vv.resize(12); vv.push_back (vector<int> (m[0], m[1])); vv.push_back (vector<int> (m[1], m[2])); vv.push_back (vector<int> (m[2], m[3])); for (vector<vector<int> >::size_type i = 0; i < vv.size (); i++) { for (vector<int>::size_type j = 0; j < vv[i].size (); j++) cout << setw (4) << vv[i][j]; cout << endl; } return 0;}[解决办法]
1. 跟clear没有关系。
2. vv.resize(12)得到一个具有12个向量元素的二维向量,其内层向量的size默认为0.
3. 三次vv.push_back函数使得vv具有15个向量元素,其中前面12个向量的size为0,后面3个向量的size为4.
4. 输出代码中,对于前面12个size为0的向量元素,各输出一个换行符。然后再输出1,2,3,4...
