c++ - 如何在for循环中创建自动迭代,它将为其分配指针而不是值
问题描述
我想创建这样的自动迭代循环:
std::vector<sometype> vector1;
for(auto it : vector1)
{
if(&it == &vector1.at(4))
//do something...
else
continue;
}
但是我发现当它等于vector1.at(4)时“it”的地址与vector1.at(4)的地址不同。我该如何做for循环,它会分配给“它”不是值,而是当前指向的值的地址。
解决方案
您可以使用引用(添加&
到变量声明)来做类似的事情。
std::vector<sometype> vector1;
for(auto& it : vector1) // add &
{
if(&it == &vector1.at(4))
//do something...
else
continue;
}
推荐阅读
- c++ - 编译简单 boot_mpi 分散程序时出错:没有序列化元素
- python - VS 代码未加载 Python 解释器
- c# - WPF MVVM - 组合框绑定选定值
- android-security - 与 PayPal android 相关的 HostnameVerifier 接口的不安全实现
- c# - ' SqliteConnection '对象引用未设置为对象的实例。对于内存数据库
- python - 如何从复杂的字典中选择某个值
- c++ - (C++)负双精度与正整数的除法给了我正的结果
- java - 您如何确定 CLASS 是否是 spring 代理?
- ios - 错误域=NSCocoaErrorDomain 代码=257 “文件“文档”无法打开,因为您没有查看权限。”
- python - 如何在 Windows 10 上使用 python 从 BT 模块 (HC-05) 接收数据?