此程序输出的说明:

  • 本文关键字:说明 输出 程序 c++
  • 更新时间 :
  • 英文 :


因此,向量中应该包含以下内容:
32,-64,-1,-1,2,-4,8,-16,32

然而,我真的不明白怎么回事?有人能解释一下吗?感谢您的帮助。

vector<int>vv(3,-1);
for(; vv[0]<10; vv[1] *=-2)
{
vv.push_back(vv[1]);
vv[0]=vv[vv.size()-1];
}

解释?

调试器是一个更好的选择,但您可以添加cout来说明代码的进度。


// Note: -std=c++17 supports the 'using list'
#include <iostream>
using std::cout, std::cerr, std::endl, std::hex, std::dec, std::cin; // c++17
#include <vector>
using std::vector;
#include <string>
using std::string;
class T985_t // ctor and dtor are compiler provided defaults
{
public:
int operator()() { return exec(); }  // functor entry
private: // methods
int exec()
{
vector<int>vv(3,-1);
show(vv, "n  a ");         // ADD initial show
for(; vv[0]<10; vv[1] *=-2)
{
vv.push_back(vv[1]);
show(vv, "n  b ");      // ADD show
//vv[0]==vv[vv.size()-1];  warning: value computed is not used [-Wunused-value]
// previous line causes infinite loop
vv[0]=vv[vv.size()-1];
show(vv, "n  c ");      // ADD show
}
show(vv, "n  d ");         // ADD final show
return 0;
}
void show(vector<int>& iVec, string lbl )
{
cout << lbl;
for (auto i : iVec)
cout << i << "  ";
cout << endl;
}
}; // class T985_t
int main(int , char**) { return T985_t()(); }  // a functor

输出:一步一个脚印,一次一个变化。

a -1  -1  -1  
b -1  -1  -1  -1  
c -1  -1  -1  -1  
b -1  2  -1  -1  2  
c 2  2  -1  -1  2  
b 2  -4  -1  -1  2  -4  
c -4  -4  -1  -1  2  -4  
b -4  8  -1  -1  2  -4  8  
c 8  8  -1  -1  2  -4  8  
b 8  -16  -1  -1  2  -4  8  -16  
c -16  -16  -1  -1  2  -4  8  -16  
b -16  32  -1  -1  2  -4  8  -16  32  
c 32  32  -1  -1  2  -4  8  -16  32  
d 32  -64  -1  -1  2  -4  8  -16  32  

最新更新