首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

天哪,关于vector的reserve有关问题,如何会不一样呢

2012-08-10 
天哪,关于vector的reserve问题,怎么会不一样呢templatetypename Tvoid PrintTick(vectorT t){cout

天哪,关于vector的reserve问题,怎么会不一样呢
template<typename T>
void PrintTick(vector<T> t)
{
cout<<"不重新分配空间,可以插入容器中的最大个数:"<<t.capacity()<<endl;
}

int main()
{
//定义一个初始包含5个int型的向量
vector<int> vec2(5);//初始化为0
PrintTick<int>(vec2);

vec2.reserve(100);//设置最小存储空间
cout<<"不重新分配空间,可以插入容器中的最大个数:"<<vec2.capacity()<<endl;这里是100

PrintTick<int>(vec2);//这里居然是5,难道我的编译器有问题,还是代码有问题



而当模板函数改为下面时
template<typename T>
void PrintTick(vector<T>& t){//加了个引用
cout<<"不重新分配空间,可以插入容器中的最大个数:"<<t.capacity()<<endl;
}

就正确了。


这是为神马啊?

[解决办法]
楼主请补课拷贝构造函数。

热点排行