C++中,如果有一个容器vector<int>v,然后v.reserve(10),我想把第三个元素赋为了1000,应该怎么做?高手指点

如题所述

v.reserve(10);只是让v预留10个元素的存储空间。你没加入元素之前v的大小为0的。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
v.reserve(10);//此时v的元素个数为0
cout<<"size of v:"<<v.size()<<endl;
v.resize(10);//此时元素个数为10
cout<<"size of v:"<<v.size()<<endl;
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
v[3]=1000;//下标从0开始计数
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
cin.get();
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-20
v[2] = 1000;

C++中,如果有一个容器vector<int>v,然后v.reserve(10),我想把第三个元...
int main(){ vector<int> v;v.reserve(10);\/\/此时v的元素个数为0 cout<<"size of v:"<<v.size()<<endl;v.resize(10);\/\/此时元素个数为10 cout<<"size of v:"<<v.size()<<endl;for(int i=0;i<v.size();i++)cout<<v[i]<<" ";cout<<endl;v[3]=1000;\/\/下标从0开...

vector 在c++中resize 和reserve的区别
resize就是重新分配大小,reserve就是预留一定的空间。这两个接口即存在差别,也有共同点。下面就它们的细节进行分析。为实现resize的语义,resize接口做了两个保证:一是保证区间[0, new_size)范围内数据有效,如果下标index在此区间内,vector[indext]是合法的。二是保证区间[0, new_size)范围以外数据...

C++中vector容器改变后如何知道初始大小?
c++中vector容器的大小确定方法:1、vector v;此时没有初始化,所以size()和capacity()都是0;cout<<v.size()<<endl<<v.capacity()<<endl;2、v.push_back(1);cout<<v.size()<<endl<<v.capacity()<<endl;\/\/此时容器内有一个元素了,那么size()和capacity()都是1 3、v.push_back(1)...

C++泛型算法 一个vector的fill_n()操作问题
fill_n()把value 的拷贝赋给[first,first+count)范围内的count 个元素 是赋值过去, 插入新值你得自己给他插入迭代器 reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素 没有已被分配的空间来保存, 赋值会失败, 或者说导致未定义的运行时刻行为, 你可以换成resi...

c++ vector 增删改查的小例子
举例:vector<string> v1; \/\/ 创建空容器,其对象类型为string类 vector<string> v2(10); \/\/ 创建有10个具有初始值(即空串)的string类对象的容器 vector<string> v3(5, "hello"); \/\/ 创建有5个值为“hello”的string类对象的容器 vector<string> v4(v3.begin(), v3.end()); \/\/ v4...

C++语法高手进
int ia[10];第一个元素的地址: ia或者是&ia[0]第二个元素的地址: ia 1或者是&ia[1]15. STL中vector有两种不同的使用形式:数组习惯,即使用下标操作符,注意只能操作已经存在的成员;STL习惯,使用iterator来操作,对其解引用可以访问实际的对象,也可以通过加减来移动位置。雷同与5。16. typedef用来为内置的或...

有C++的超神人物请帮我解答下疑问吧!
所以个人觉得你老师写错了,也有可能是本来就是这么想的。miniVector::miniVector(int size):函数或者他这个函数的用意就是如果你申请一个8大小的vector,就给你数据全0的8大小的vector。因为只是模拟vector,如果不是微软那样的代码,要做出一样的vector代码是相当难的。不是还有miniVector();方法嘛,这个...

关于C++中string类型变量的赋值
首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> \/\/注意这里不是string.h string.h是C字符串头文件1.声明一个C++字符串声明一个字符串变量很简单: string Str;这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,...

怎么在C++中用Vector存放不同类型的数据..
explicit vector() throw() : sz(0), random_ptr() { } \/\/ ...void push_back(const value_type& v) { !random_ptr ? random_ptr = new T(v): new(random_ptr+sz) T(v);sz++;} reference operator[](size_type ind) { return *(random_ptr+ind); } size_type size() ...

c++ vector insert问题! 为什么一用insert就出错
vector<A>::iterator p=v.begin(); \/\/这个时候v是empty,p是空的 A aaa(4);A bb(6);v.push_back(aaa);v.push_back(aaa);v.push_back(aaa);v.push_back(aaa); \/\/运行到这里p依然是空的!p=v.begin(); \/\/p在这里重新赋值就可以了……用法是对的,只是你的逻辑出了错误 关于...

相似回答