c++ - 通过 [] 访问新定义的向量的问题
问题描述
我对 C++ 很陌生,我正在使用 Xcode 创建一个程序,它可以让你用单词填充向量 <string>,同时用“BLEEP”替换某些不需要的单词。这是代码:
#include "std_lib_facilities.h"
int main()
{
vector<string> words;
vector <string> disliked;
disliked[0] = "Brocolli";
string temp;
while (cin >> temp)
{
words.push_back(temp);
for(int i = 0 ; i < words.size() ; ++i)
{
int current = i;
for(int i = 0 ; i < disliked.size() ; ++i)
{
if (words[current] == disliked[i])
{
words[current] = "BLEEP";
}
}
cout << words[current] << endl;
}
}
}
当我运行它时,它向我显示以下内容:
解决方案
线
disliked[0] = "Brocolli";
不好,因为它正在访问具有零元素的向量的第一个元素。
它应该是
disliked.push_back("Brocolli");