#include <iostream>
#include <vector>
struct Guy ;
struct Girl
{
std::vector<Guy*> boyfriends ;
};
struct Guy
{
Guy( const std::string& n ) : name(n) {}
const std::string name ;
// ...
};
int main()
{
Guy a( "a" ), b( "b" ), c( "c" ) ;
Girl g ;
g.boyfriends.push_back( &a ) ;
g.boyfriends.push_back( &b ) ;
for( std::size_t i = 0 ; i < g.boyfriends.size() ; ++i )
std::cout << g.boyfriends[i]->name << ' ' ;
std::cout << '\n' ;
g.boyfriends.push_back( &c ) ;
for( std::size_t i = 0 ; i < g.boyfriends.size() ; ++i )
std::cout << g.boyfriends[i]->name << ' ' ;
std::cout << '\n' ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IEd1eSA7CgpzdHJ1Y3QgR2lybAp7CiAgICBzdGQ6OnZlY3RvcjxHdXkqPiBib3lmcmllbmRzIDsKfTsKCnN0cnVjdCBHdXkKewogICAgR3V5KCBjb25zdCBzdGQ6OnN0cmluZyYgbiApIDogbmFtZShuKSB7fQogICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZSA7CiAgICAvLyAuLi4KfTsKCmludCBtYWluKCkKewogICAgR3V5IGEoICJhIiApLCBiKCAiYiIgKSwgYyggImMiICkgOwoKICAgIEdpcmwgZyA7CgogICAgZy5ib3lmcmllbmRzLnB1c2hfYmFjayggJmEgKSA7CiAgICBnLmJveWZyaWVuZHMucHVzaF9iYWNrKCAmYiApIDsKCiAgICBmb3IoIHN0ZDo6c2l6ZV90IGkgPSAwIDsgaSA8IGcuYm95ZnJpZW5kcy5zaXplKCkgOyArK2kgKQogICAgICAgIHN0ZDo6Y291dCA8PCBnLmJveWZyaWVuZHNbaV0tPm5hbWUgPDwgJyAnIDsKICAgIHN0ZDo6Y291dCA8PCAnXG4nIDsKCiAgICBnLmJveWZyaWVuZHMucHVzaF9iYWNrKCAmYyApIDsKCiAgICBmb3IoIHN0ZDo6c2l6ZV90IGkgPSAwIDsgaSA8IGcuYm95ZnJpZW5kcy5zaXplKCkgOyArK2kgKQogICAgICAgIHN0ZDo6Y291dCA8PCBnLmJveWZyaWVuZHNbaV0tPm5hbWUgPDwgJyAnIDsKICAgIHN0ZDo6Y291dCA8PCAnXG4nIDsKfQo=