申明一个链表然后把一个变量插到任意一个位置。。请高手指教。不要用MFC.c++的语法就可以
解决方案 »
- select函数如何判断连接是否可写?
- 请教:自定义消息中,如何传递更多的参数?
- 请教什么是com中的事件
- 利用向导制作的一个Full control 并且是 based on static的ATL控件,在注册后拉到基于对话框的工程上运行时程序不能显示?
- 如何读取注册表中的字符串?在线......
- 怎样在状态栏中显示进度条?
- 怎么样得到一个按钮的句柄?
- InvalidateRect(hwnd,NULL,1)的用法?
- 知道一个int型数的每个字节,怎么得到这个数
- micro visual studio 2008 通过OTL连接ORACLE的程序编译问题!
- 动态加载odbc数据源?
- 在基于单文档的工程中,加入一个对话框,做为登陆界面的有关问题!在线等待
#include "stdafx.h" #include <list>
#include <string>
#include <iostream>
#include <algorithm> using namespace std;
// Print out a list of strings
ostream& operator<<(ostream& out, const list<string>& l)
{
copy(l.begin(), l.end(),
ostream_iterator<string,char>(cout," "));
return out;
} int main(void)
{
// create a list of critters
list<string> critters;
int i;
// insert several critters
critters.insert(critters.begin(),"antelope");
critters.insert(critters.begin(),"bear"); critters.insert(critters.begin(),"cat");
// print out the list
cout << critters << endl;
// Change cat to cougar
*find(critters.begin(),critters.end(),"cat") = "cougar";
cout << critters << endl;
// put a zebra at the beginning
// an ocelot ahead of antelope
// and a rat at the end
critters.push_front("zebra");
critters.insert(find(critters.begin(),critters.end(),
"antelope"),"ocelot");
critters.push_back("rat"); cout << critters << endl;
// sort the list (Use list's sort function since the
// generic algorithm requires a random access iterator
// and list only provides bidirectional)
critters.sort();
cout << critters << endl;
// now let's erase half of the critters
int half = critters.size() >> 1;
for(i = 0; i < half; ++i) {
critters.erase(critters.begin());
}
cout << critters << endl;
return 0;
}
最前面 中间 最后面
...n-1 n n+1 ...
...n-1 A n+1 ...
在n位置插入 A ,则需要 处理 原 n-1 与 n的关系重新处理为
n-1 -> next = A;
A->previous = n-1;
A->next = n
n->previous = A.差不多就这样.