vector 构造函数

为什么vector<int>myint;这种方式定义myint,是不可以使用下标方式赋值但是一旦里面有值了就可以呢?下面代码是正确的#include<iostream>#... 为什么vector<int > myint;这种方式定义myint,是不可以使用下标方式赋值
但是一旦里面有值了就可以呢?
下面代码是正确的
#include<iostream>
#include<vector>
using namespace std;
void main()
{
vector<int> myint ;
for(int i=0;i<10;i++)
myint.push_back(20-i);

for(int i=0;i<10;i++)
cout<<myint[i]<<" ";
cout<<endl;
for(int i=0;i<10;i++)
myint[i]=i+5;
for(int i=0;i<10;i++)
cout<<myint[i]<<" ";
}
但是这样就是错误的

#include<iostream>
#include<vector>
using namespace std;
void main()
{
vector<int> myint ;
for(int i=0;i<10;i++)
myint[i]=i+5;
for(int i=0;i<10;i++)
cout<<myint[i]<<" ";
}
展开
 我来答
较阿萨德我264
推荐于2017-09-22 · TA获得超过520个赞
知道答主
回答量:113
采纳率:100%
帮助的人:122万
展开全部
Vector 类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大。在删除一些元素之后,数组变小。

Vector 有三个构造函数:
public Vector(int initialCapacity,int capacityIncrement)
public Vector(int initialCapacity)
public Vector()

Vector 运行时创建一个初始的存储容量initialCapacity,存储容量是以capacityIncrement 变量定义的增量增长。初始的存储容量和capacityIncrement 可以在Vector 的构造函数中定义。第二个构造函数只创建初始存储容量。第三个构造函数既不指定初始的存储容量也不指定capacityIncrement。
Vector 类提供的访问方法支持类似数组运算和与Vector 大小相关的运算。类似数组的运算允许向量中增加,删除和插入元素。它们也允许测试矢量的内容和检索指定的元素,与大小相关的运算允许判定字节大小和矢量中元素不数目。
希望能解决您的问题。
追问
谢谢了!但是你的回答没有回答
到我提的疑问
香帅之枫
2014-09-05 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:68.4万
展开全部
因为你一开始定义myint时候,只是生成了一个对象myint,具体里面存储的只是一个指针,而不是真正的int类型数组,没有分配内存空间也就无法赋值,pushback函数就会申请新的内存空间生成新数组存储赋的值,理解了吗?
追问
如果这样说确实可以解释通了。
ok,就这样理解了。
追答
当然是这么理解,这个类被封装了,你不能看到里面的东西,不过你可以猜测他是怎么样实现的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式