Я просто писал еще одну программу. И используется:Ошибка с while (cin)
while (cin)
words.push_back(s);
words
является vector
из string
, s
является string
.
Объем использования ОЗУ по сравнению с 4 или 5 входами, SWAP начал заполняться. Я использую ubuntu? Я просто не понимаю, как такой простой код может вызвать такие плохие последствия. Или что-то не так с моей системой?
EDIT: Полная программа:
#include <iostream>
#include <vector>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main()
{
vector<string> words;
string s;
cout << "Enter the string: ";
while (cin)
words.push_back(s);
for (vector<string>::const_iterator iter = words.begin();
iter != words.end(); ++iter)
cout << *iter;
return 0;
}
Пожалуйста, покажите полную программу испытаний, которые мы можем использовать, чтобы дублировать эту проблему для себя. – zwol
Вместо этого используйте 'emplace_back', я сомневаюсь, что это причина. – Shoe
Не думаю, что вы где-то добываете строку 's'? Как 'while (cin >> s)' ?? Как написано, 'cin' не модифицируется вашей петлей, поэтому я могу представить, что это будет работать в течение очень долгого времени. – WhozCraig