私は、家族の姓を収集し、家族の名の名前を尋ねるプログラムに取り組んでいます。istringstream
から収集された名前を分離するためにオブジェクトを使用していますgetline
。の要素を埋めようとするステップでmap
、次のエラーが発生します。の名前に続いて括弧内にキーを指定することで、キーを作成できることを私は知っていますmap
。そのメソッドが有効な場合、次のエラーが発生するのはなぜですか。
ex11_14.cpp:19:6: error: reference to non-static member function must be called
family[lname].push_back[fname];
コード:
#include <iostream>
#include <map>
#include <vector>
#include <sstream>
int main()
{
std::string lname, fname;
std::string last, children;
std::map<std::string, std::vector<std::string>> family;
std::cout << "Enter family names" << std::endl;
getline(std::cin, last);
std::istringstream i{last};
std::cout << "Enter children's names" << std::endl;
while(i >> lname) {
std::cout << lname << std::endl;
getline(std::cin, children);
std::istringstream j{children};
while(j >> fname)
family[lname].push_back[fname];
}
for(auto &c:family) {
std::cout << c.first << std::endl;
for(auto &w:c.second)
std::cout << w << " ";
std::cout << std::endl;
}
std::cout << std::endl;
return 0;
}