У меня возникают трудности с конкретным фрагментом кода, который я изучаю из "Принципов программирования и практики с использованием С++".
Я не могу получить вывод из цикла, ссылающегося на вектор. Я использую std_lib_facilities и stdafx, потому что книга и MVS сказали мне это.
#include "stdafx.h"
#include "../../std_lib_facilities.h"
int main()
{
vector<string>words;
for(string temp; cin>>temp; )
words.push_back(temp);
cout << "Number of words: " << words.size() << '\n';
}
Это ничего не даст. Я получу приглашение, введите несколько слов, затем введите, затем ничего.
Пробовал некоторые варианты, которые я получил здесь и с других сайтов, например:
//here i tried the libraries the guy used in his code
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
cout << "Please enter a series of words followed by End-of-File: ";
vector<string> words;
string word;
string disliked = "Broccoli";
while (cin >> word)
words.push_back(word);
cout << "\nNumber of words: " << words.size() << endl;
// cycle through all strings in vector
for (int i = 0; i < words.size(); ++i)
{
if (words[i] != disliked)
cout << words[i] << endl;
else
cout << "BLEEP!\n";
}
return 0;
}
Все еще ничего.
После некоторых попыток, устраняя, я вполне уверен, что проблема связана с связью между векторами, потому что все они работают нормально:
int main()
{
vector<string>words = { "hi" };
words.push_back("hello");
cout << words[1] << "\n"; // this will print hello
for (int i = 0; i < words.size();++i) {
cout << words[i] << "\n"; // this will print out all elements
// inside vector words, ( hi, hello)
}
cout << words.size();// this will print out number 2
for (string temp; cin >> temp;) {
words.push_back(temp);
}
cout << words.size();// this won't do anything after i type in some
// words; shouldn't it increase the size of the
// vector?
}
Также это не будет:
int main()
{
vector<string>words = { "hi" };
for (string temp; cin >> temp;) {
words.push_back(temp);
}
cout << words.size();
}
Чего мне не хватает, пожалуйста? Заранее благодарю вас.