#pragma warning(disable:4786)
#include <iostream>
#include <vector>
#include <string>
using namespace std ;
vector <string> slovo;
string end = "Quit";
string getWord()
{
string str;
cin >> str;
return str;
}
void main()
{
while(getWord()!=end)
{
slovo.push_back(getWord());
slovo.resize(slovo.size()+1);
}
}
вопрос по std::vector
bool getWord(std::vector< std::string > & buf)
{
TCHAR Temp[256];
memset(Temp,0,256*sizeof(TCHAR));
std::cin.getline(Temp,255);
std::string tmp;
tmp.assign(Temp);
buf.push_back(tmp);
return true;
}
void inputWords(std::vector< std::string > locWords)
{
//std::vector< TCHAR > Temp;
getWord(locWords);
for(std::vector< TCHAR >::size_type i = 0;
!_tcscmp(locWords.c_str(),"Quit");
i++) getWord(locWords);
}
...............
inputWords(Words);
Мне надо заполнять vector до момента, пока не введено слово "Quit". Начинаю вводить, после ввода первого значения вылетает то, что на картинке. В чем дело? Поясните пожалуйста.
Цитата:
Originally posted by gorodok
Код:
#pragma warning(disable:4786)
#include <iostream>
#include <vector>
#include <string>
using namespace std ;
vector <string> slovo;
string end = "Quit";
string getWord()
{
string str;
cin >> str;
return str;
}
void main()
{
while(getWord()!=end)
{
slovo.push_back(getWord());
slovo.resize(slovo.size()+1); /* зачем? */
}
}
#include <iostream>
#include <vector>
#include <string>
using namespace std ;
vector <string> slovo;
string end = "Quit";
string getWord()
{
string str;
cin >> str;
return str;
}
void main()
{
while(getWord()!=end)
{
slovo.push_back(getWord());
slovo.resize(slovo.size()+1); /* зачем? */
}
}
А разве slovo.push_back(getWord()) не увеличит автоматически размер на 1?
Цитата:
Originally posted by solovey
А разве slovo.push_back(getWord()) не увеличит автоматически размер на 1?
А разве slovo.push_back(getWord()) не увеличит автоматически размер на 1?
Ты прав :D :
Код:
#pragma warning(disable:4786)
#include <iostream>
#include <vector>
#include <string>
using namespace std ;
vector <string> slovo;
string end = "Quit";
string getWord()
{
string str;
cin >> str;
return str;
}
void main()
{
string tmp;
do
{
tmp=getWord();
slovo.push_back(tmp);
cout << "Last element: " << slovo.back( )<<", and size: "<< slovo.size() << endl;
}while(tmp!=end);
}
#include <iostream>
#include <vector>
#include <string>
using namespace std ;
vector <string> slovo;
string end = "Quit";
string getWord()
{
string str;
cin >> str;
return str;
}
void main()
{
string tmp;
do
{
tmp=getWord();
slovo.push_back(tmp);
cout << "Last element: " << slovo.back( )<<", and size: "<< slovo.size() << endl;
}while(tmp!=end);
}