背景: 通过Bjarne Stroustrup,编程原理和实践使用C ++,第2版。我正在试试这个4.6.4。我一直坚持这方面的各个方面,例如排序和向量不像txt书中那样工作:
sort()
vector<string> bad_word_list = {"buck", "Buck", "idiot"};
我的系统: xcode 6.3.2 C ++标准库 - libc ++(支持C ++ 11的LLVM C ++标准库)
#include "std_lib_facilities.h"
int main()
{
vector<string> words;
for (string temp; cin>>temp;) {
words.push_back(temp);
cout << "Number of words: "<<words.size()<<'\n';
}
sort(words.begin(), words.end());
for (int i=0; i<words.size(); ++i) {
int bad_word;
bad_word = check_word(words[i]); // <----
if (bad_word == 1) {
cout << "BEEP";
} else
cout << words[i] << '\n';
}
return 0;
}
int check_word(string x)
{
vector<string> bad_word_list;
bad_word_list.push_back("duck");
for (int i=0; i<bad_word_list.size(); ++i) {
if (x == bad_word_list[i]) {
return 1;
}
}
return 0;
}
当前问题是check_word出现为未声明的标识符。当我删除main中的所有代码并直接调用check_word时,仍然会发生这种情况。
注意:当我输入check_word时,自动提示/填充功能会检测到该功能。
答案 0 :(得分:0)
您必须在使用之前声明check_word。