上面的for循环,你只是在每个元素的副本上调用函数,数组里面元素的值没有改变,让你误以为for循环没执行。
改成 for(auto& mbr:m_mbrs)。
我一开始代码是这样,然后发现在这段代码里for根本没执行。
m_mbrs.resize(m_k);
for(auto mbr:m_mbrs){
mbr.makeInfinite(m_dimension);
}
改成下面这样后结果就对了,
m_mbrs.resize(m_k);
for(int i=0;i<m_k;i++){
m_mbrs[i].makeInfinite(m_dimension);
}
for(auto x:vector)这个东西的表现和直接用下标表现有什么区别吗?