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

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

【讨论】:

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