私はこのような構造体を持っています:
struct group
{
int index;
string name;
group* child;
};
そして、いくつかのグループ構造体を格納するためのベクトルを設定しました。
今、私は次のようなインデックスによってそのベクトルからグループメンバーを取得する関数を作成しようとしています。
148 newGroup.child = getGroupByIndex(world, i);
そして、関数の定義は次のとおりです。
group& getGroupByIndex(vector<group>* world, int i)
{
for(vector<group>::iterator it = world->begin();
it < world->end(); ++it)
{
if(it->index == i) return *it;
}
267 return 0;
}
残念ながら、コンパイルすらできません。
そして、エラーメッセージは次のとおりです。
tree.cpp: In function ‘int main()’:
tree.cpp:148: error: cannot convert ‘group’ to ‘group*’ in assignment
tree.cpp: In function ‘group& getGroupByIndex(std::vector<group, std::allocator<group> >*, int)’:
tree.cpp:267: error: invalid initialization of non-const reference of type ‘group&’ from a temporary of type ‘int’
私の2つの問題、
コンパイルエラーを修正する方法は?どのリターンタイプを使用する必要がありますか?
267行目にnullポインタを返したい場合は、何を使用すればよいですか?(void *)0と0を試しましたが、どちらも機能しません。