首页 > 试题广场 >

有以下程序 #include ...

[不定项选择题]
有以下程序
#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> A(10);
    int count=0,n;
    cout<<"请输入n的值:";
    cin>>n;
    A.__________(n);
    for(int i=2;i<=n;i++)
        if(i%3==0&&i%5==0) A[count++]=i;
    for(i=0;i<count;i++)
        cout<<A[i]<<" ";
    cout<<endl;
}
当键盘输入20,程序的运行结果是15,请为横线处选择合适的程序(      )
  • size
  • reserve
  • resize
  • length
你妈死了出这题
发表于 2019-09-03 21:40:05 回复(13)
B
reserve(n)
调用reserve(n)后,若容器的capacity<n,则重新分配内存空间,从而使得capacity等于n
C
resize(n)
调整容器的长度大小,使其能容纳n个元素。如果n小于容器的当前的size,则删除多出来的元素。否则,添加采用值初始化的元素。
原来大小是10,I=15才会有A[count++]=15,所以要调整大小,而AD大小未发生变化
编辑于 2020-01-16 11:59:38 回复(2)
这题代码本身输入20,就能输出15,A.__(n);影响不大,只要编译能过就行。
所以本题考查的是vector的函数的用法:
vector.size();   size()函数没有形参。
vector没有length()函数。
所以AD不对;
BC用法上没有错误,程序正常运行。
发表于 2020-09-16 17:09:27 回复(0)
B是错的。reserve只能改变capacity不能改变size,新的空间内不真正地创建元素,因此不能用索引赋值,必须要push_back或者insert。
发表于 2020-08-25 22:00:41 回复(1)
vector<int> A(10);这段中是 A(10)是定义了10个整形元素
使用reserve,resize可以改变容器的大小
size 和 length 效果是容器大小
发表于 2023-12-25 17:09:40 回复(0)
B应该是错的吧…reserve之后得初始化赋值才行叭。。。
发表于 2020-09-16 09:25:24 回复(0)
这题确定没有问题・_・?
发表于 2019-10-22 16:23:31 回复(0)
这题是垃圾题,但是讲到vector。有一点就是vector的容量(capacity)是要大于size的。vector的实际配置空间的大小比客户端要求大一点,方便将来的扩充。扩容的话有两种,一种是两倍,一种是1.5倍
发表于 2023-07-13 21:58:19 回复(0)
reserve(n)
   调用reserve(n)后,若容器的capacity<n,则重新分配内存空间,从而使得capacity等于n
   reserve只能改变capacity不能改变size,新的空间内不真正地创建元素,reserve之后得初始化赋值才行,因此不能用索引赋值,必须要push_back或者insert。所以本题中A[10]-A[19]没有初始化,不能索引赋值,但A[0]-A[9]经过初始化的,可以索引赋值。

resize(n)  
   调整容器的长度大小,使其能容纳n个元素。如果n小于容器的当前的size,则删除多出来的元素。否则,添加采用值初始化的元素。  
   n=20,i=15才会有A[count++]=15

发表于 2023-05-09 15:06:44 回复(0)

用B、C选项运行,两种运行结果都是15。
编辑于 2022-09-13 16:37:48 回复(0)
《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表: 情况一、需要初始化的数据成员是对象的情况(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始化); 情况二、需要初始化const修饰的类成员; 情况三、需要初始化引用成员数据;
发表于 2022-01-06 23:54:05 回复(0)
通过resize和reserve修改vector容量
发表于 2021-10-12 16:22:54 回复(0)
填什么都行a0就是15了,所以能编译过就可以
发表于 2021-07-21 14:05:56 回复(0)
resize改变的是容器有效空间大小;reserve改变的是容器的容量。记住,容量可以大,但不表示有效空间会大;容量>=有效空间~
发表于 2021-04-03 18:00:51 回复(0)
<p>这题绝壁有问题,看不懂</p>
发表于 2020-11-21 23:07:24 回复(0)
for循环那里就有语法问题了,这题有问题啊
发表于 2019-09-16 09:07:24 回复(0)