重复读取list中首尾之间的元素
最近需要处理如下的一个问题:
读取一个list中的所有内容,将其输出(如输出到屏幕),其中首行和末行都只输出一次,中间的所有行都会输出两遍。例如,一个 list 中包含如下内容:
1
2
3
4
将其输出到屏幕,期望看到的效果如下:
1
2
2
3
3
4
我是用如下程序实现的:
1 #include <iostream>
2 #include <list>
3
4 using namespace std;
5
6 int main()
7 {
8 list<int> intList;
9 list<int>::iterator intIterator;
10
11 for (int i = 0; i < 4; i++)
12 {
13 intList.push_back(i + 1);
14 }
15 for (intIterator = intList.begin(); intIterator != intList.end(); intIterator++)
16 {
17 if (intIterator == intList.begin())
18 {
19 cout << *intIterator << "\t";
20 } else {
21 cout << *intIterator << endl;
22 intIterator++;
23 if (intIterator != intList.end())
24 {
25 intIterator--;
26 cout << *intIterator << "\t";
27 } else {
28 break;
29 }
30 }
31 }
32
33 return 0;
34 }