c ++矢量元素访问

时间:2015-07-05 14:29:28

标签: c++ vector types

我正在尝试使用我已经定义的数据类型创建一个向量  在课堂上

for(int i=0; i<myVector.size();i++)

但是当我尝试使用for循环

访问向量中的元素时
vector <Road_Segment> Unvisited;//the vector

for (i = 0; i<Unvisited.size(); i++)
{
    cur_node = Unvisited[0];//current node to visit

    find_node_neighbers(cur_node.end_station.ID, end, T_R);

我收到错误消息,告知向量超出范围调试断言失败了第932行!

这是我的代码

val joined = userData.join(events)// RDD of (UserID, (UserInfo, LinkInfo)) pairs
val offTopicVisits = joined.filter {
case (userId, (userInfo, linkInfo)) => !userInfo.topics.contains(linkInfo.topic)
}.count()

当我尝试对此循环进行评论时,我没有收到该错误消息

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

这一行:

n

应该是:

cur_node = Unvisited[0];

否则,它只会反复访问第一个元素。

但是如果你只需要对每个元素执行一个动作,你应该使用foreach循环:

cur_node = Unvisited[i];

这可以避免索引等问题。或者,如果您需要实际修改每个元素而不是仅使用它,只需删除for (const Road_Segment& cur_node : Unvisited) { // I'm guessing "neighbers" is just a typo, but that's what was in the question find_node_neighbers(cur_node.end_station.ID, end, T_R); }

const