回答
如何使用STL列表容器创建一个循环?
你不能。
std::list
有一个开始和结束。对数据结构的所有访问都进行了仔细的控制,以便符合标准的程序无法生成非终止列表。
P.s.我假设面试官实际上打算说“std::list
”而不是“STL名单”。
一个可能的答案是:当多个线程同时操作list
结构时可能会发生这种情况。假设两个线程想要push_back
进入已经形成的list
。如果列表中已经有b
和a
,循环链表可能看起来像:
.--------------------------.
( )
`-> a <-> SENTINEL <-> b <-'
而且一个线程在同一时间的另一个刀片d
插入c
。他们每个人都想要连接到SENTINEL
像这样的背:
a <-> c <-> SENTINEL
a <-> d <-> SENTINEL
然而,最终可能使得一个循环:
.------------.
a. `-. )
`-> c <-> d <-'
<--> SENTINEL <-> b (<-> a)
前向链路的罚款:b -> a -> c -> d
但反过来链接将循环:d -> c -> d
...
这可能是因为SENTINEL的指针正在被读取,取消引用和修改而没有互斥。
能否详细说明一下?我想我不明白你的图。 – 2012-08-11 03:28:46
@KevinHu:我改变了这个例子,并提供了更详细的解释。 – jxh 2012-08-11 04:45:33
- 1. 在C#中使用for或do循环创建列表
- 2. 如何在Java中使用循环创建多个列表?
- 3. 如何使用循环创建多列
- 4. 如何在C++中创建for循环
- 5. 在for循环中创建新列表
- 6. 如何从Python中的列表创建一个循环列表?
- 7. 使用foreach循环为c#中的两个列表创建列表值
- 8. 如何使用C#中的foreach在列表中创建列表?
- 9. 用C#中的用户创建循环列表
- 10. 用循环在列表元素中创建多个列表项
- 11. 如何使用random.randint for循环创建随机数字列表?
- 12. 如何使用for循环创建词典列表?
- 13. 在C++中使用stl列表和类
- 14. 如何在python中使用for循环创建表(sql)?
- 15. 在表中使用php循环创建四个列
- 16. 如何在循环中创建循环(双循环)
- 17. 如何在循环中创建变量列表?
- 18. 如何在Elm中使用循环构建列表?
- 19. 使用foreach循环创建Excel表格中的列表
- 20. for Python中的循环创建列表
- 21. 如何使用循环在Python中创建一组列表容器
- 22. C++:创建使用for循环
- 23. 如何使用循环中的变量创建/添加列
- 24. 如何创建使用循环
- 25. 如何在没有STL的情况下在C++中创建边(v1,v2)列表
- 26. 如何在C#中创建应用程序循环#
- 27. 使用ggplot2在循环中创建图
- 28. 使用循环在JSF中创建commandButton?
- 29. 使用ARC在循环中创建NSDictionary
- 30. 如何创建Python lambdas列表(在列表理解/ for循环中)?
这是一个措辞不佳的问题。你应该要求澄清。他们想知道如何遍历'std :: list'吗? – Chad 2012-08-10 16:03:52
这不是我的面试问题。但我相信这不是一个遍历列表的问题。完整的问题实际上会要求你做一个循环,然后检测它。 – 2012-08-10 16:06:23
也许把你想要的代码放入析构函数并创建这些对象的N个列表? – Gir 2012-08-10 16:06:27