C++ Primer 学习笔记-练习6.7的答案错了?

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我一直怀疑《C++ Primer Answer book》这本书是不是太过急于出版了。对于练习6.7,我写了一个test程序:

#include <string>

#include <vector>

#include <iostream>

using namespace std;

int main()

{

vector<string>svec;

svec.reserve(1024);

int n;

cout<<" please input n : ";

cin>>n;

do

{

if(n == 0) return 0;

for(int i = 0; i < n; i++)

svec.push_back("a");

svec.resize( svec.size() + svec.size()/2 );

cout <<"after resize "<<svec.size()<<endl;

cout <<" max size "<<svec.max_size()<<endl;

cout <<"capacity size "<<svec.capacity()<<endl;

cout<<" please input n: ";

cout<<endl;

svec.clear();

}while(cin>>n);

}

gnu c++编译器上的执行的结果如下:

please input n : 256

after resize 384

max size 1073741823

capacity size 1024

please input n: 512

after resize 768

max size 1073741823

capacity size 1024

please input n: 1000

after resize 1500

max size 1073741823

capacity size 2000

please input n: 1048

after resize 1572

max size 1073741823

capacity size 2000

please input n: 0 //Exit

vc2003编译器执行结果如下:

please input n : 256

after resize 384

max size 153391689

capacity size 1024

please input n: 512

after resize 768

max size 153391689

capacity size 1066

please input n: 1000

after resize 1500

max size 153391689

capacity size 1599

please input n: 1048

after resize 1572

max size 153391689

capacity size 1599

please input n: 0 //exit

结论:

这道题没有确切的答案,如果谁有了确切的答案,那肯定是错误的!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航