c++ - 以非顺序顺序在 vector 中分配值

标签 c++ c algorithm c++11 vector

我想以最有效和最简单的方式使用 vector 实现类似于下面提到的代码。我该怎么做?

int a[1005];
for(int i=1;i<=1000;i+=5)
    a[i]=i*i;

当我尝试使用 vector 做同样的事情时,编译器抛出断言失败错误..下标超出范围...

vector<int> a;
for(int i=1;i<=1000;i+=5)
    a[i]=i*i;

所以,我尝试了 pushback 函数......但是 vector 的索引只能从 0 增加到调用 pushback 的次数,而不是我想要的方式,即 1,6,11,16

vector<int> a;
for(int i=1;i<=1000;i+=5)
    a.pushback(i*i);

最佳答案

将具有所需大小的 vector 声明为构造函数参数:vector<int> a(1000);

关于c++ - 以非顺序顺序在 vector 中分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30652983/

相关文章:

c++ - OpenGL - 水波(有噪音)

algorithm - 如果你知道一只股票的 future 价格,什么时候买卖最好?

真实二维区域中的Java寻路

android - 在android中通过JNI在C代码中打开文件时获取NULL

c++ - 暂时使 MFC 功能区中的控件处于非事件状态或禁用状态

c++ - 如何在 CRTP 基类中根据 "op"实现 "op="?

c++ - 如何一起使用c和c++

c - SC 启动服务失败 1058

c - 双值作为负零

algorithm - 查找集合中下一个最小和最大数字的快速算法