#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector< string> user;
void doTest( string newuser) {
if ( user.size ( ) < 1 ) {
cout << "vector is empty, adding " << newuser << "\n " ;
user.push_back ( newuser) ;
}
for ( int i = 0 ; i < user.size ( ) ; ++ i) {
string name = user[ i] ;
if ( name == newuser) {
cout << "index " << i << ": " << newuser << " found, breaking loop\n " ;
break ;
}
else {
cout << "index " << i << ": " << name << ", adding " << newuser << "\n " ;
user.push_back ( newuser) ;
}
}
}
void printUsers( )
{
for ( auto & u : user) {
cout << u << "\n " ;
}
cout << "\n " ;
}
int main( )
{
user.push_back ( "dbotting" ) ;
user.push_back ( "egomez" ) ;
cout << "before tests:\n " ;
printUsers( ) ;
cout << "running test 1:\n " ;
doTest( "tongyu" ) ;
cout << "after test 1:\n " ;
printUsers( ) ;
cout << "running test 2:\n " ;
doTest( "tongyu" ) ;
cout << "after test 2:\n " ;
printUsers( ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPHN0cmluZz4gdXNlcjsKCnZvaWQgZG9UZXN0KHN0cmluZyBuZXd1c2VyKSB7CgogICAgaWYgKHVzZXIuc2l6ZSgpIDwgMSl7CiAgICAgICAgY291dCA8PCAidmVjdG9yIGlzIGVtcHR5LCBhZGRpbmcgIiA8PCBuZXd1c2VyIDw8ICJcbiI7CiAgICAgICAgdXNlci5wdXNoX2JhY2sobmV3dXNlcik7CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1c2VyLnNpemUoKTsgKytpKXsKICAgICAgICBzdHJpbmcgbmFtZSA9IHVzZXJbaV07CiAgICAgICAgaWYgKG5hbWUgPT0gbmV3dXNlcikgewogICAgICAgIAljb3V0IDw8ICJpbmRleCAiIDw8IGkgPDwgIjogIiA8PCBuZXd1c2VyIDw8ICIgZm91bmQsIGJyZWFraW5nIGxvb3BcbiI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY291dCA8PCAiaW5kZXggIiA8PCBpIDw8ICI6ICIgPDwgbmFtZSA8PCAiLCBhZGRpbmcgIiA8PCBuZXd1c2VyIDw8ICJcbiI7CiAgICAgICAgICAgIHVzZXIucHVzaF9iYWNrKG5ld3VzZXIpOwogICAgICAgIH0KICAgIH0KfQoKdm9pZCBwcmludFVzZXJzKCkKewoJZm9yKGF1dG8gJnUgOiB1c2VyKSB7CgkJY291dCA8PCB1IDw8ICJcbiI7Cgl9Cgljb3V0IDw8ICJcbiI7Cn0KCmludCBtYWluKCkKewoJdXNlci5wdXNoX2JhY2soImRib3R0aW5nIik7Cgl1c2VyLnB1c2hfYmFjaygiZWdvbWV6Iik7CgoJY291dCA8PCAiYmVmb3JlIHRlc3RzOlxuIjsKCXByaW50VXNlcnMoKTsKCQoJY291dCA8PCAicnVubmluZyB0ZXN0IDE6XG4iOwoJZG9UZXN0KCJ0b25neXUiKTsKCWNvdXQgPDwgImFmdGVyIHRlc3QgMTpcbiI7CglwcmludFVzZXJzKCk7CgoJY291dCA8PCAicnVubmluZyB0ZXN0IDI6XG4iOwoJZG9UZXN0KCJ0b25neXUiKTsKCWNvdXQgPDwgImFmdGVyIHRlc3QgMjpcbiI7CglwcmludFVzZXJzKCk7CgoJcmV0dXJuIDA7Cn0=
stdout
before tests:
dbotting
egomez
running test 1:
index 0: dbotting, adding tongyu
index 1: egomez, adding tongyu
index 2: tongyu found, breaking loop
after test 1:
dbotting
egomez
tongyu
tongyu
running test 2:
index 0: dbotting, adding tongyu
index 1: egomez, adding tongyu
index 2: tongyu found, breaking loop
after test 2:
dbotting
egomez
tongyu
tongyu
tongyu
tongyu