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]<<" ";
} 展开
但是一旦里面有值了就可以呢?
下面代码是正确的
#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]<<" ";
} 展开
2个回答
展开全部
Vector 类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大。在删除一些元素之后,数组变小。
Vector 有三个构造函数:
public Vector(int initialCapacity,int capacityIncrement)
public Vector(int initialCapacity)
public Vector()
Vector 运行时创建一个初始的存储容量initialCapacity,存储容量是以capacityIncrement 变量定义的增量增长。初始的存储容量和capacityIncrement 可以在Vector 的构造函数中定义。第二个构造函数只创建初始存储容量。第三个构造函数既不指定初始的存储容量也不指定capacityIncrement。
Vector 类提供的访问方法支持类似数组运算和与Vector 大小相关的运算。类似数组的运算允许向量中增加,删除和插入元素。它们也允许测试矢量的内容和检索指定的元素,与大小相关的运算允许判定字节大小和矢量中元素不数目。
希望能解决您的问题。
Vector 有三个构造函数:
public Vector(int initialCapacity,int capacityIncrement)
public Vector(int initialCapacity)
public Vector()
Vector 运行时创建一个初始的存储容量initialCapacity,存储容量是以capacityIncrement 变量定义的增量增长。初始的存储容量和capacityIncrement 可以在Vector 的构造函数中定义。第二个构造函数只创建初始存储容量。第三个构造函数既不指定初始的存储容量也不指定capacityIncrement。
Vector 类提供的访问方法支持类似数组运算和与Vector 大小相关的运算。类似数组的运算允许向量中增加,删除和插入元素。它们也允许测试矢量的内容和检索指定的元素,与大小相关的运算允许判定字节大小和矢量中元素不数目。
希望能解决您的问题。
追问
谢谢了!但是你的回答没有回答
到我提的疑问
展开全部
因为你一开始定义myint时候,只是生成了一个对象myint,具体里面存储的只是一个指针,而不是真正的int类型数组,没有分配内存空间也就无法赋值,pushback函数就会申请新的内存空间生成新数组存储赋的值,理解了吗?
追问
如果这样说确实可以解释通了。
ok,就这样理解了。
追答
当然是这么理解,这个类被封装了,你不能看到里面的东西,不过你可以猜测他是怎么样实现的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询