C++ 为什么我在使用for循环和cout命令时不打印向量
我似乎找不到向量组件的内容不使用for循环和cout提供的原因。代码的背景是,我想知道当你调整一个已经存在的向量时会发生什么(如果变小,哪些组件会脱落,如果变大,哪些组件会被添加,…)C++ 为什么我在使用for循环和cout命令时不打印向量,c++,for-loop,vector,cout,C++,For Loop,Vector,Cout,我似乎找不到向量组件的内容不使用for循环和cout提供的原因。代码的背景是,我想知道当你调整一个已经存在的向量时会发生什么(如果变小,哪些组件会脱落,如果变大,哪些组件会被添加,…) #包括 #包括 #包括 #包括 使用名称空间std; int main() { 载体a; 对于(int i=1;i
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
载体a;
对于(int i=1;i<10;++i)
a[i]=5;
a、 调整大小(15)
对于(int i=1;i cout您的代码中有一个越界访问权限。在填充向量之前,您需要调整向量的大小。或者,您可以使用push_back
插入元素。
在任何一种情况下,它都会像您预期的那样工作。您的代码中有一个越界访问权限。您需要在填充向量之前调整向量的大小。或者,您可以使用推回
插入元素。
在任何一种情况下,它都将按预期工作。您没有更改向量的大小。要插入向量,可以使用或方法。如果将插入代码更改为
for (int i = 1; i < 10; ++i)
a.push_back(i);
然后打印循环应该可以正常工作。您没有更改向量的大小。要插入向量,可以使用或方法。如果将插入代码更改为
for (int i = 1; i < 10; ++i)
a.push_back(i);
然后,打印循环应该可以正常工作。程序具有未定义的行为,因为声明的向量为空,并且不能对空向量使用下标运算符
vector<double> a;
for (int i = 1; i < 10; ++i)
a[i] = 5;
向量a;
对于(int i=1;i<10;++i)
a[i]=5;
此外,向量的索引从0开始
你可以写
vector<double> a( 10 );
for (int i = 0; i < 10; ++i)
a[i] = 5;
向量a(10);
对于(int i=0;i<10;++i)
a[i]=5;
或
向量a;
对于(int i=0;i<10;++i)
a、 推回(5);
或者为了使最后一段代码更有效,您可以编写
vector<double> a;
a.reserve( 10 );
for ( int i = 0; i < 10; ++i)
a.push_back( 5 );
向量a;
a、 储备(10);
对于(int i=0;i<10;++i)
a、 推回(5);
同样,要输出向量的全部内容,您应该从0开始索引。或者您可以使用基于范围的for循环
for ( const auto &item : a ) std::cout << item << '\';
对于(const auto&item:a)std::cout程序具有未定义的行为,因为声明的向量为空,并且不能对空向量使用下标运算符
vector<double> a;
for (int i = 1; i < 10; ++i)
a[i] = 5;
向量a;
对于(int i=1;i<10;++i)
a[i]=5;
此外,向量的索引从0开始
你可以写
vector<double> a( 10 );
for (int i = 0; i < 10; ++i)
a[i] = 5;
向量a(10);
对于(int i=0;i<10;++i)
a[i]=5;
或
向量a;
对于(int i=0;i<10;++i)
a、 推回(5);
或者为了使最后一段代码更有效,您可以编写
vector<double> a;
a.reserve( 10 );
for ( int i = 0; i < 10; ++i)
a.push_back( 5 );
向量a;
a、 储备(10);
对于(int i=0;i<10;++i)
a、 推回(5);
同样,要输出向量的全部内容,您应该从0开始索引。或者您可以使用基于范围的for循环
for ( const auto &item : a ) std::cout << item << '\';
for(const auto&item:a)std::cout