insertafter(insertafter的用法)
VB 让窗口强行置顶
Option
Explicit
Private
Declare
Function
SetWindowPos
Lib
"user32"
(ByVal
hwnd
As
Long,
ByVal
hWndInsertAfter
As
Long,
ByVal
x
As
Long,
ByVal
y
As
Long,
ByVal
cx
As
Long,
ByVal
cy
As
Long,
ByVal
wFlags
As
Long)
As
Long
Private
Const
HWND_TOPMOST
=
-1
'
将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private
Const
SWP_NOSIZE
=
H1
'
保持窗口大小
Private
Const
SWP_NOMOVE
=
H2
'
保持窗口位置
Private
Sub
Form_Load()
SetWindowPos
Me.hwnd,
HWND_TOPMOST,
0,
0,
0,
0,
SWP_NOMOVE
Or
SWP_NOSIZE
'
将窗口设为总在最前
End
Sub
'其实和楼上的一样,
不过这个置顶的是
加载的窗口,
你要置顶哪窗口就把代码放哪个里边
,另外MSGBOX
的置顶是4096
系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。
数据结构:用单链表实现两个多项式的加法
我也在学这个,这是我上学期学的。
//polynomial.cpp
#include"polynomial.h"
int sum(linklistintlist)
{
if(list.isempty()==1)return 0;
int item=list.reset(1)-data;
return item;
}
ostreamoperator(ostream output,polynomialz)
{
nodeterm*q;term data1;
q=z.poly.reset(1);
while(q-next!=NULL)
{
data1=q-data;outputdata1.coef"X^"data1.exp"+";q=q-next;}data1=q-data;
if(data1.exp==0) outputdata1.coef;
else outputdata1.coef"X^"data1.exp;
coutendl;
return output;
}
void main()
{
polynomial a,b;term c;
c.init(5,10);
a.poly.insertafter(c);
c.init(2,6);
a.poly.insertafter(c);
c.init(4,0);
a.poly.insertafter(c);
coutaendl;
c.init(3,10);
b.poly.insertafter(c);
c.init(7,4);
b.poly.insertafter(c);
c.init(6,1);
b.poly.insertafter(c);
coutbendl;
couta+bendl;
// b.poly.~linklist();
// a.poly.~linklist();
}
//polynomial.h
//linklist
#include iostream.h
#include stdlib.h
#include math.h
#includestring.h
templateclass typeclass linklist;
templateclass typeclass node
{
friend class linklist type;
private:
//node type* next;
public:
type data;
node type* next;
node (nodetype* pnext=NULL);
node(const type item,nodetype* pnext=NULL);
void setnext(nodetype* p){next=p;}
void setdata(type x){data=x;}
~node(){};
};
templateclass typeclass linklist
{
private:
nodetype* head;
nodetype* pcurrent;
public:
linklist();
~linklist();
int length()const;
type getcurrent();
nodetype* locate(type x);
void insertbefore(const type x);
void insertafter(const type x);
type deletecurrent();
int isempty()const;
void clear();
node type* reset(int i);
node type* Next();
int endoflist()const;
void freelist();
};
templateclass type
node type::node(nodetype* pnext){next=pnext;}
templateclass type
nodetype::node(const type item,nodetype* pnext)
{
data=item;
next=pnext;
}
template class type
linklisttype::linklist()
{
head=pcurrent=new nodetype();
head-next=NULL;
}
template class type
linklisttype::~linklist(){}
template class type
void linklisttype::freelist()
{
clear();
delete head;
}
template class type
int linklisttype::length()const
{
nodetype*p=head-next;
int len=0;
while(p!=NULL)
{len++;p=p-next;}
return len;
}
template class type
type linklist type::getcurrent()
{if(pcurrent==head||pcurrent==NULL)
{cerr"未取到数值"endl;
exit(1);
}
return pcurrent-data;
}
template class type
nodetype* linklisttype::locate(typex)
{pcurrent=head-next;
while(pcurrent!=NULL)
if(pcurrent-data==x)break;
else pcurrent=pcurrent-next;
return pcurrent;
}
template class type
void linklisttype::insertbefore(const typex)
{
if(head-next==NULL)
{
nodetype* newnode=new nodetype*(x,NULL);
head-next=pcurrent=newnode;
}
else
{
nodetype*newnode=new nodetype(x,pcurrent);
nodetype* p=head;
while(p-next!pcurrent)p=p-next;
p-next=newnode;
pcurrent=newnode;
}
}
template class type
void linklisttype::insertafter(const type x)
{
if(head-next==NULL||pcurrent==NULL)
{nodetype*newnode=new nodetype(x,head-next);
head-next=pcurrent=newnode;
}
else
{
nodetype*newnode=new nodetype(x,pcurrent-next);
pcurrent-next=newnode;
pcurrent=newnode;
}
}
template class type
type linklisttype::deletecurrent()
{
if(pcurrent==head||pcurrent==NULL)
{
cerr"不可删!"endl;
exit(1);
}
nodetype* p=head;
while(p-next!=pcurrent)p=p-next;
p-next=pcurrent-next;
type data1=pcurrent-data;
delete pcurrent;
pcurrent=p-next;
return data1;
}
template class type
int linklisttype::isempty()const
{
if(head-next==NULL)return 1;
else return 0;
}
template class type
void linklisttype::clear()
{
nodetype*p,*q;
p=head-next;
while(p!=NULL)
{q=p;p=p-next;delete q;}
pcurrent=head;
}
template class type
nodetype*linklisttype::reset(int i)
{
if(head==NULL||i0)return NULL;
if(i==0)
{pcurrent=head;return head;}
nodetype*p=head;
int k=0;
while(p!=NULLki)
{p=p-next;k++;}
pcurrent=p;
return p;
}
template class type
nodetype*linklisttype::Next()
{
if(pcurrent!=NULL) pcurrent=pcurrent-next;
return pcurrent;
}
template class type
int linklisttype::endoflist()const
{
if(pcurrent==NULL)return 1;
else return 0;
}
struct term{
int coef; int exp;
void init(int c,int e){coef=c;exp=e;};
};
class polynomial{
friend polynomialoperator +(polynomial ,polynomial );
public:
linklisttermpoly;
};
polynomialoperator+(polynomiala,polynomialb){
nodeterm *pa,*pb,*pc,*p, *c;
term at,bt;
pc=a.poly.reset(0);
c=pc;
p=b.poly.reset(0);
pa=a.poly.reset(1);
pb=b.poly.reset(1);
delete p;
while(!a.poly.endoflist()!b.poly.endoflist())
{
int i=0;
at=pa-data;
bt=pb-data;
if(at.exp==bt.exp) i=0;
if(at.expbt.exp) i=1;
else if(at.expbt.exp) i=2;
switch(i){
case 0:
at.coef=at.coef+bt.coef;
p=pb;
pb=b.poly.Next();
delete p;
if(abs(at.coef)0.0001)
{p=pa;pa=a.poly.Next();delete p;}
else
{pa-setdata(at);
pc-setnext(pa);
pc=pa;pa=a.poly.Next();
}
break;
case 1:
pc-setnext(pa);
pc=pa;
pa=a.poly.Next();
break;
case 2:
pc-setnext(pb);
pc=pb;
pb=b.poly.Next();
}
}
if(!a.poly.endoflist()) pc-setnext(pa);
else pc-setnext(pb);
return a;
}
insertafter是什么意思
是:Insert After
Insert After
后插入;
[例句]The last method you should learn is insert_after.
应该了解的最后一个方法是insert after。
jquery如何添加兄弟节点?
用after()或者insertAfter(),就可以实现加入兄弟节点。
在使用after()或者insertAfter(),作为兄弟节点的时候,这两种方法在效果上是一样的。例如$("#button1").after("span内容/span")
$("span内容/span").insertAfter("#button1")
在效果上是相同的,都建立了兄弟节点。
jquery中after与insertAfter有什么区别
jquery的dom操作方法中,包括了after与insertAfter,这两个方法名字相近,所实现的功能从名 字中不容易分辨,所以在经过试验后撰文一篇以加深记忆。
测试代码如下:
head
meta charset=”utf-8″
title 测试insertAfter与after的区别 /title
/head
body
ul
li class=”first”first/li
li class=”middle”middle/li
li class=”last”last/li
/ul
/body
/html
自然状态下显示是这样的:
添加脚本:$(‘.first’).insertAfter($(‘.last’));
则会把first移到last后面去,变成了这样:
如果把insertAfter方法换为after,效果则为:
从上述对比可以看出,其实这两个方法的差别就像主语跟宾语的差别一样,是主与从的问题。
after方法,是把参数元素移到调用方法的元素的后面,而insertAfter方法则恰恰相反,是把调用 方法的元素插入到参数元素的后面。
另外要注意的是,当要用这两个方法在dom树中添加新元素时,如
”linew/li”,这样的html字符串不能出现在after方法的调用主体或
insertAfter的参数中,因为这样一来,jquery不知道要把新元素放到哪里去,反而会导致要相关的原 有元素丢失。