for
(string str; cin >> str; arr.push_back(str)) {}这个不是一个无限循环吗,还有后面判断num=1是什么意思呀