Я слежу за великой книгой C ++ 17 по Примеру , которая представляет C ++ 17, демонстрируя серию мини-проектов - очень круто.
Однако вГлава 2, где Set
реализована поверх LinkedList
, есть этот код:
void Set::read(std::istream& inStream) {
int size;
inStream >> size;
int count = 0;
while (count < size) {
double value;
inStream >> value;
insert(value);
++count;
}
}
void Set::write(std::ostream& outStream) {
outStream << "{";
bool firstValue = true;
Iterator iterator = first();
while (iterator.hasNext()) {
outStream << (firstValue ? "" : ", ") << iterator.getValue();
firstValue = false;
iterator.next();
}
outStream << "}";
}
int main() {
Set s, t;
s.read(std::cin);
t.read(std::cin);
std::cout << std::endl << "s = ";
s.write(std::cout);
std::cout << std::endl;
std::cout << std::endl << "t = ";
t.write(std::cout);
std::cout << std::endl << std::endl;
// snip
}
Я довольно новичок в C ++, и я не знаюкак запустить это.Конечно, я провел некоторое исследование, прежде чем спрашивать, но способ, которым я придумал, не дает ожидаемых результатов:
lambdarookies-MacBook:02-the-set-class lambdarookie$ ./02-the-set-class
1 2 3
3 4 5
s = {2} // Expected: s = {1, 2, 3}
t = {3, 4, 5}
Теперь мне интересно:
- Это простоне правильный способ предоставления аргументов, или
- это правильный путь, и ошибка должна быть в другом месте кода?