You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不支持auto关键字的编译器中遍历自定义的vector<Pair>容器?

如何在不支持auto关键字的编译器中遍历自定义的vector容器?

嘿,我来帮你搞定这个问题!既然你的编译器不支持auto关键字,那咱们就用老编译器完全兼容的传统方法来遍历这个vector<Pair>,主要有两种常用且靠谱的方式:

1. 使用迭代器遍历

因为没法用auto自动推导迭代器类型,咱们得明确写出迭代器的完整类型vector<Pair>::iterator——这是STL容器遍历的标准做法,代码示例如下:

vector<Pair> V;
// 先假设V已经被填充了若干Pair元素

// 定义迭代器变量
vector<Pair>::iterator it;
// 从容器起始位置遍历到末尾
for (it = V.begin(); it != V.end(); ++it) {
    // 访问当前Pair对象的成员,两种写法都可行:
    // 方法一:箭头运算符(更简洁,推荐)
    it->clear(); // 调用Pair类的clear方法
    // 比如访问public成员m_Tip:it->m_Tip
    // 方法二:先解引用迭代器,再用点运算符
    (*it).clear();
}

如果你的vector是const类型(不想修改其中元素),记得把迭代器换成vector<Pair>::const_iterator,这样就只能读取元素而不能修改啦。

2. 使用下标遍历

这种方式更直观,和遍历普通数组的逻辑差不多,用整数索引来访问容器里的元素,代码示例:

vector<Pair> V;
// 假设V已经有元素了

// 用size_t类型的索引(匹配vector.size()的返回值类型)
for (size_t i = 0; i < V.size(); ++i) {
    // 直接通过下标访问第i个Pair对象
    V[i].clear();
    // 访问public成员:V[i].m_Entry
}

这种写法逻辑清晰,对新手友好,老编译器肯定能完美兼容。

备注:内容来源于stack exchange,提问作者Dastoger Bashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:18:13