c++ - 迭代 vector 时越界

标签 c++ vector indexoutofboundsexception

我正在制作一个程序,它将接受一段文本并且:

  1. 计算一个词被找到的次数
  2. 将它们保存到结构中
  3. 打印出单词被找到的次数。

但是当我尝试将字符串与结构字符串成员进行比较时遇到了问题。 我得到 vector 超出范围。请查看下面的代码。希望有人能告诉我我做错了什么

#include <iostream>
#include<string>
#include <vector>

using namespace std;


struct word_entry {
  string word;
  int amount;
} ;

typedef vector<word_entry>  type_of_vector;

void insert(type_of_vector word_storage,string word_to_insert)
{
  bool word_found =false;

  for(int i = 0;i<=word_storage.size();i++)
    {
      if(word_storage.at(i).word==word_to_insert) //crashes the program
        {
          word_storage.at(i).amount++; 
           word_found=true;
        } 
    }    
}

int main()
 {
   type_of_vector word_vector;
   string word_to_insert="kalle";   
   word_entry insert_word={word_to_insert,1};  
   word_vector.insert(word_vector.end(),insert_word);   
   insert(word_vector,word_to_insert); 
 }

最佳答案

必须是

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

使用“小于”'<'而不是“小于或等于”'<='。

关于c++ - 迭代 vector 时越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21531262/

相关文章:

c++ - 搜索 map 和打印 vector

go - slice 可以访问另一个超出范围的 slice ,但索引超出范围会导致 panic

java - 当请求的索引越界时返回什么

c++ - 在指向 vector 的智能指针上使用 push_back() 时出现运行时错误

C++ 类/vector 指针问题

c++ - 类型别名和不完整的类型

python-3.x - 在 3D 空间中使用 Python 定义向量并查找角度?

java - Java读取CSV文件时出现空行

c++ - CreateFile 无法共享串行 (COM) 端口

c++ - eclipse /海湾合作委员会 : Undefined Reference to Extern Variable