gpt4 book ai didi

c++ - 箭头运算符和 vector

转载 作者:太空宇宙 更新时间:2023-11-04 15:58:50 25 4
gpt4 key购买 nike

我一直试图将一个特定的 vector 元素重新分配给一个新值,但从编译器收到一个错误,我不确定我是否理解它。所以我相信您可以像重新分配数组元素一样重新分配单个 vector 元素。

std::vector<int> myVector[10];

myVector[5] = 6;

或者您也可以使用内置的“.at”通过边界检查来访问 vector 。当我编写一些简单的代码只是为了更好地理解一些概念时,我遇到了一种特殊情况。

int main()
{

std::vector<int> test[10];

test[3] = 5;

if (test[3] != 6)
{
std::cout << "It works!" << std::endl;
}

return 0;
}

现在这段代码标记了一个错误,指出赋值运算符“=”和逻辑运算符“!=”根据这些操作数不匹配。现在,如果我使用箭头运算符“->”,代码就可以正常工作。这很好,但我认为,也许是错误的,在取消引用指向对象的指针时使用了箭头运算符。我试图用谷歌搜索这些结果,但也许由于它的基本性质,我找不到太多关于这个主题的信息。虽然,我想在一些带有“c++ 教程”的网站上提及,但我确实看到他们使用了赋值运算符而没有取消引用 vector 。现在这发生在 Visual Studios 2017 和最新版本的 Code::Blocks 中。我错了吗?你真的需要使用箭头运算符吗?还是我错过了更基本的东西?

最佳答案

您创建了一个包含 10 个 vector 的数组,而不是包含 10 个元素的 vector 。 vector 最终是一个类类型,因此您需要通过构造函数对其进行初始化:

std::vector<int> test(10);

您最初的做法意味着您尝试为索引 3 处的 vector 分配值 5。 vector 不支持分配数字,所以这就是错误所在。

关于c++ - 箭头运算符和 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49344826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com