gpt4 book ai didi

c++ - vector 下标超出范围 - 结构 vector

转载 作者:行者123 更新时间:2023-11-30 03:36:30 27 4
gpt4 key购买 nike

我有以下代码。它应该计算给定文件中给定字母的重复次数。但是,当我尝试运行它时,我发现 Vector 下标超出了范围。其他有同样错误的人试图访问它的未定义部分,但我认为这似乎不是问题。

struct letters
{
char letter;
int repetitions=0;
};


void howManyTimes(const string &output)
{
ifstream file(output);
vector <letters> alphabet;

for (int i = 0; i < 'z' - 'a' + 1; i++)
{
alphabet[i].letter = 'a' + i;
}

string line;

while (file.eof() == 0)
{
getline(file, line);
for (char c : line)
{
if(c >= 'a' && c <= 'z')
alphabet[c - 'a'].repetitions++;
else if (c >= 'A' && c >= 'Z')
alphabet[c - 'A'].repetitions++;
}
}
cout << alphabet[10].repetitions;
}

最佳答案

vector <letters> alphabet;  // (1)

for (int i = 0; i < 'z' - 'a' + 1; i++)
{
alphabet[i].letter = 'a' + i; // (2)
}

(1) 创建一个 vector 。

(2)for 循环中,您尝试使用索引 i vector ,很明显你的索引超出范围

您首先必须用一些数据填充 vector ,然后您才能访问这些数据。

如果您想向 vector 添加新项目,您可以使用vector::push_back(这可能就是您在(2))。

关于c++ - vector 下标超出范围 - 结构 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40659340/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com