【发布时间】:2018-04-01 01:19:01
【问题描述】:
我需要返回一个指向列表中某个值的指针
std::vector<std::list<int>> lists;
...
if(lists.at(i).front()==val){
//return a pointer after the first value
return ptr;
}
我能想到的最好方法是使用std::next,但我不知道如何让它返回一个指针
【问题讨论】:
-
你知道
&,也就是地址操作符吗? -
我想可能是XY problem。为什么要返回指向列表向量元素的指针?为什么不使用迭代器而只增加
begin()? -
顺便说一下,列表没有快速随机访问。这意味着访问一些随机元素需要线性时间。
-
&(*(std::next(lists.at.(i).begin(), 1)))。*将迭代器转换为引用,&获取引用所指的地址。 -
为什么需要指针而不是迭代器?