读取向量指针索引处的元素
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<string>*
所以foo()[0]
是vector<string>
并且您不能将string
分配给vector<string>
?
我怀疑 foo->at(0) = "hi";
编译,因为 foo
是一个函数。
拥有这种返回类型是糟糕的设计
【参考方案1】:
向量库中的operator=不用于插入,你可以使用push_back()或insert函数插入元素,如:
foo->push_back(“hi”);
foo->insert(“hi”);
【讨论】:
【参考方案2】:这是因为array indexing
【讨论】:
以上是关于读取向量指针索引处的元素的主要内容,如果未能解决你的问题,请参考以下文章