C ++向量的大小无效

用户名

给出以下代码:

#include <vector>
std::vector<int> intVec;
intVec.reserve(5);
intVec[0] = 1;
std::cout << "intVec Size: " << intVec.size();

为什么intVec.size()返回无效尺寸0?我该如何解决该问题?我不想使用它push_back,也不想用5个元素对向量进行零初始化。

编辑:向量的大小应在1之后intVec[0] = 1

乌玛·赫尔法维(Human Helfawi)

从您的不稳定问题,我可以猜测您希望向量将其[] operator视为“如果存在则进行编辑,或者如果不存在则进行创建”。有些东西一样的行为[] operatorstd::map,例如..

你根本做不到它不是这样设计的。

顺便说一句,您可以执行以下操作:(这是个坏主意。不要。)

int& funky_operator(std::vector<int>& vec, const std::size_t index){
    if(index<vec.size()){
        vec.resize(index+1);
    }
    return vec[index];
}
int main(){
    std::vector<int> intVec;
    intVec.reserve(5);
    funky_operator(intVec,0) = 1;
    std::cout << "intVec Size: " << intVec.size();
}

同样,这是愚蠢的代码。请勿在现实生活中使用。但是,这就是您想要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得C ++类成员向量的大小?

来自分类Dev

c Valgrind读取大小4无效->分段错误

来自分类Dev

如何调整2D C ++向量的大小?

来自分类Dev

C#中无效的结构大小

来自分类Dev

初始化C ++向量的大小

来自分类Dev

在C ++中的类中定义向量的大小

来自分类Dev

C ++:按向量大小的重载函数

来自分类Dev

C ++向量减少分配大小

来自分类Dev

C ++向量大小为零

来自分类Dev

按每个向量的大小对c ++中向量的向量进行排序

来自分类Dev

C ++删除指针映射:free()无效大小

来自分类Dev

C ++中不同大小的向量的迭代图

来自分类Dev

c ++向量模板参数1无效

来自分类Dev

错误C2036:“无效*”:大小未知

来自分类Dev

Objective-C ++调整大小实例向量不起作用

来自分类Dev

C ++对大小为N的子向量进行迭代

来自分类Dev

向量C ++向量的大小

来自分类Dev

c ++向量大小和容量输出相同的值

来自分类Dev

固定大小vecors的C ++向量

来自分类Dev

C ++不区分大小写的向量对

来自分类Dev

在构造函数内给定大小的堆上创建C ++ STL向量

来自分类Dev

C ++删除指针映射:free()无效大小

来自分类Dev

C ++无效的读取大小4 valgrind

来自分类Dev

读取的大小无效-C valgrind

来自分类Dev

向量到数组和C ++中的数组大小

来自分类Dev

在C ++中动态调整大小并填充向量的向量

来自分类Dev

向量(在 C++ 中)如何分配可变大小的元素?

来自分类Dev

C - 大小 1 的无效读取

来自分类Dev

C++ 中的向量大小是否超过 2147483647?