C++ 容器里面的意思

不懂 (*it).name.find(name) 和 (*it).name.length()) 这两个分别的意思


 void FindBook()
    {
        string name;
        cin >> name; 
        for (list::iterator it = BList.begin(); it != BList.end(); it++)//遍历整个list,所以符合关键字的都会被找到
        {
            int index = (*it).name.find(name);//如果没找到返回值是一个很大的数
            if (index < (*it).name.length())
                (*it).Show();
        }
    }

it代表list中的每一个Book对象。
( * it).name.find(name)就是判断每个Book对象的name变量中,是否包含要搜索的书名。
( * it).name.length() 是获取Book对象name变量的长度,然后find搜索的结果比长度小,说明能够找到书名,则输出该Book对象的详细信息

你不好理解就是因为命名不规范,( * it).name.find(name)前面一个name是BOOK的变量,后面一个是你输入的。改成( * it).bookName.find(name)会好些。