В этой программе правая часть «списка» является единственной доступной частью. Однако при отображении списка левая сторона также должна быть напечатана на экране. Единственный способ получить данные о левых сторонах - перенести его на правую сторону, перемещая забор. Вот то, что я до сих пор:C++ первый элемент в списке исчезает
void display(textList& s)
//! ensures: s = #s and displays the contents of s
{
textList sTemp;
int leftL = s.leftLength();
s.moveToStart();
cout << "<";
for (int i = 0, lastItem = (leftL - 1); i < leftL; i++) {
cout << s.rightFront();
if (i < lastItem)
cout << ",";
s.advance();
} //end for
cout << ">";
cout << "<";
for(int i = 0, z = s.rightLength(), lastItem = (z - 1); i < z; i++) {
Text x;
s.removeRightFront(x);
cout << x;
sTemp.addRightFront(x);
if (i < lastItem) {
cout << ",";
} // end if
} // end for
cout << ">" << endl;
s.transferFrom(sTemp);
} // display
Поэтому в основном я двигаю забор поэтому у меня есть доступ ко всем данным, а затем напечатать первое значение, то Авансовое значение забора один раз, пока длину левой стороны имеет был достигнут, я затем распечатаю правую сторону.
Моя проблема в том, что самое первое значение правой стороны всегда пропадает. В чем проблема? Я потратил много времени на стрельбу, но я не могу найти ее; Я почти уверен, что это где-то в коде для печати правой стороны.
Что такое забор и левый список и правый список в контексте списка? – user93353
Я не думаю, что мы сможем решить это без полного примера; еще лучше [минимальный полный пример] (http://stackoverflow.com/help/mcve). – Beta
Что такое 'textList'? – PaulMcKenzie