如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
How to get the address of the element which is pushed back in the list, In constant time,in c++ stl?
listl; list ::iterator lastElement; lastElement=l.end(( l.push_back(10(; cout<<"列表中元素 10 的地址是"<<&lastElement<<endl;
上述方式是在常量时间内获取列表最后一个元素地址的正确方法吗?我知道还有许多其他方法,但我想要一种在恒定时间内给出地址的方法。
如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
推送元素后,使用std::list::back
获取对该元素的引用。然后使用运算符 & 获取元素的地址(如果运算符重载,则使用std::addressof
,这是不寻常的(。
上述方法是否是获取列表最后一个元素地址的正确方法
不。有几个问题:
std::list:end
将迭代器返回到列表末尾之后的元素;而不是返回最后一个元素的迭代器。- 在将元素推入列表之前获取迭代器。迭代器不可能是稍后推送到列表的元素。
- 你在迭代器上应用运算符和。结果是迭代器的地址;而不是迭代器指向的元素的地址。
相关文章:
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 为什么两个矢量元素的地址有这么大的差距?
- 如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 指向结构的指针向量的元素具有相同的地址
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 类实例的地址是否等于类中唯一元素的地址
- 存储 std::list 元素的地址;内存
- 为什么这段代码给出错误......'a'是指针到字符指针,应该存储's'的地址,因为s是指向数组的第一个元素的指针
- 直接从指针/地址访问数组的元素
- 获取向量中元素的地址
- 如何在 2D 字符数组中打印 [x][y] 元素的地址?(C++)
- 按地址从矢量中删除元素
- 将结构元素地址设置为C 中的null(单链接列表)
- 访问字符串元素地址
- 数组元素值,元素地址和指针增量
- 相邻数组元素地址之间的差异
- 在接受std::set元素地址时,从' const int* '到' int* '的转换无效
- 向量回推对元素地址的影响
- 返回数组中最大元素地址的函数