读取向量指针索引处的元素

Posted

技术标签:

【中文标题】读取向量指针索引处的元素【英文标题】:Reading element at index for vector pointer 【发布时间】:2019-12-05 13:25:44 【问题描述】:

所以我有一个名为 foo 的函数,它返回一个

std::vector< std::string >*

我正在尝试调用该函数,然后从返回的向量中设置一个元素。但是我很困惑为什么我不能只使用 [] 运算符获取索引处的元素。

这些作品:

foo->at(0) = "hi";
(*foo())[0] = "hi";
foo()[0][0] = "hi";

但这怎么会给我一个“不可行的重载'='”错误:

foo()[0] = "hi";

【问题讨论】:

foo()vector&lt;string&gt;* 所以foo()[0]vector&lt;string&gt; 并且您不能将string 分配给vector&lt;string&gt; 我怀疑 foo-&gt;at(0) = "hi"; 编译,因为 foo 是一个函数。 拥有这种返回类型是糟糕的设计 【参考方案1】:

向量库中的operator=不用于插入,你可以使用push_back()或insert函数插入元素,如:

foo->push_back(“hi”); 
foo->insert(“hi”);

【讨论】:

【参考方案2】:

这是因为array indexing

【讨论】:

以上是关于读取向量指针索引处的元素的主要内容,如果未能解决你的问题,请参考以下文章

迭代数组并在索引处插入元素

我可以直接从 C++ 中向量元素的指针获取索引吗?

大数数组的平衡索引,如何防止溢出?

如何将包含矩阵的文件读取为向量的向量?

PHP fpassthru() 函数

leetcode 数据结构 探索数组和字符串