精华内容
下载资源
问答
  • 此次情况,业务顾问就给我提供了一张客户公司客户化的Form,然后让找出界面上的数据是怎样生成的。 首先我们从EBS form 界面上找到了界面的数据来源于一张ks_so_line_margin_all A:------------------------...

    在此次情况中,业务顾问就给我提供了一张客户公司客户化的Form,然后让找出界面上的数据是怎样生成的。

    首先我们从EBS form 界面上找到了界面的数据来源于一张表ks_so_line_margin_all

    A:--------------------------------

    然后找出与这张表相关的数据库对象:

    SELECT * FROM dba_dependencies t WHERE t.referenced_name = 'KS_SO_LINE_MARGIN_ALL';

    查询结果中包含了一个package和一张同名表;

    同名表就不需要继续追踪了,

    B:--------------------------------

    根据package,我们查看是不是可执行调用的程序包,是哪一个可执行在调用的程序包:

    SELECT *

      FROM fnd_executables_vl t

     WHERE upper(t.execution_file_name) LIKE '%KS_OM_MARGIN_PKG%';

    结果却是存在一条记录,说明有一个可执行调用的该package;

    如果没有结果,则有可能form中直接调用的该package,如果是遇到这种情况,我们查找时就比较费劲了,需要逐个查看form中的代码了。

    C:---------------------------------

    根据可执行查看有哪些并发请求调用了该可执行:

    SELECT * FROM fnd_concurrent_programs_vl t WHERE t.executable_id = 12719;

     

     

     

     

    转载于:https://www.cnblogs.com/Aston-Martin/p/3322756.html

    展开全文
  • Java对象在堆内存怎样的呢?一旦对象保存内存,就只是字节序列。 那么我们如何知道去哪里查找某个字段?编译器内部保留一个内部,来记录每个字段的偏移量。 下面的例子,是关于类“Base”(B)的对象布局...

    翻译自这一篇文章

    我们知道函数在内存中实现为一个活动记录的栈。我们也知道Java方法在JVM栈区中实现为一个帧栈而Java对象是在堆区进行分配的。

    Java对象在堆内存中是怎样的呢?一旦对象保存在内存中,就只是字节序列。

    那么我们如何知道去哪里查找某个字段?在编译器内部保留一个内部表,来记录每个字段的偏移量。

    下面的例子,是关于类“Base”(B)的对象布局。这个类中没有任何方法,类方法在内存中的存储方法会在下一节说到。

    base

    如果我们有一个类“Derived”(D)继承了这个“Base”类。那么内存分布就如下

    derived

    子对象有着与父对象相同的内存分布,只不过它还需要多一些的空间来存放新增的成员。这种布局方式的好处在于,一个B类型的指针指向D对象时,仍然可以在内存区域的开始部分找到B对象。因此,通过B引用来对D对象进行操作都保证是安全的,从而也就不必动态地检查B指向的是什么。

    按照同样的逻辑,方法可以被放在对象的开头处。

    methods

    不过,这个方法效率不高。如果一个类中有很多方法(比如说,M个),那么每个对象都必须有O(M)的指针集。此外,每一个对象都需要有可容纳O(M)指针的空间。这些要求使得创建对象更慢而对象占用更大。

    最佳是方法就是去创建一个虚函数表,这是一个指针数组,其中的指针指向某个类的具体成员函数实现。为每一个类创建一个虚函数表的实例,并在每个对象中保存一个指向虚函数表的指针。

    optimization

    这个就是最优化的方法。

    转载于:https://www.cnblogs.com/GuoYaxiang/p/6400570.html

    展开全文
  • Java对象在堆内存怎样的呢?一旦对象保存内存,就只是字节序列。那么我们如何知道去哪里查找某个字段?编译器内部保留一个内部,来记录每个字段的偏移量。下面的例子,是关于类“Base”(B)的对象布局。...

    翻译自这一篇文章

    我们知道函数在内存中实现为一个活动记录的栈。我们也知道Java方法在JVM栈区中实现为一个帧栈而Java对象是在堆区进行分配的。

    Java对象在堆内存中是怎样的呢?一旦对象保存在内存中,就只是字节序列。

    那么我们如何知道去哪里查找某个字段?在编译器内部保留一个内部表,来记录每个字段的偏移量。

    下面的例子,是关于类“Base”(B)的对象布局。这个类中没有任何方法,类方法在内存中的存储方法会在下一节说到。

    4197e03f081f322729acab92c69a2679.png

    如果我们有一个类“Derived”(D)继承了这个“Base”类。那么内存分布就如下

    5ef5bc15bca24e5a7405d2c50307fef0.png

    子对象有着与父对象相同的内存分布,只不过它还需要多一些的空间来存放新增的成员。这种布局方式的好处在于,一个B类型的指针指向D对象时,仍然可以在内存区域的开始部分找到B对象。因此,通过B引用来对D对象进行操作都保证是安全的,从而也就不必动态地检查B指向的是什么。

    按照同样的逻辑,方法可以被放在对象的开头处。

    594cd6748a30059d54261a897b8c96b4.png

    不过,这个方法效率不高。如果一个类中有很多方法(比如说,M个),那么每个对象都必须有O(M)的指针集。此外,每一个对象都需要有可容纳O(M)指针的空间。这些要求使得创建对象更慢而对象占用更大。

    最佳是方法就是去创建一个虚函数表,这是一个指针数组,其中的指针指向某个类的具体成员函数实现。为每一个类创建一个虚函数表的实例,并在每个对象中保存一个指向虚函数表的指针。

    cd730180f088fc2d356b6c16a6744e53.png

    这个就是最优化的方法。

    展开全文
  • 上一节探讨了二叉查找树的基本操作,二叉查找树的查找效率理想状态下是O(lgn),使用该树进行查找总是比链表快得多。但是,该论点并不总是正确,因为查找效率和二叉树的形状息息相关。就像这样:图1-1给出了3颗二叉...

    上一节探讨了二叉查找树的基本操作,二叉查找树的查找效率在理想状态下是O(lgn),使用该树进行查找总是比链表快得多。但是,该论点并不总是正确,因为查找效率和二叉树的形状息息相关。就像这样:

    0419b23d17b378b8bef845a33a9c73fc.png

    图1-1给出了3颗二叉查找树,它们存储着相同的数据,但很明显,图1-1(A)的树是最好的。在最坏的情况下,图A定位一个对象需要3次测试,图C需要6次。原因在于,图C的数据不是平均分布的,该树实际上已经退化成一个链表,已经失去了二叉查找树的优越性。

    这里需要引入一个新的概念,叫做平衡。如果树中任一节点的两个子树的高度差为0或者1,该二叉树就是高度平衡的或者简称平衡的。例如,图B中的节点20,其子树的高度差是1,这是可以接受的。 但是对于节点10,其子树的高度差是3,这意味着整棵树是不平衡的。另外,如果树是平衡的,并且该树所有叶节点都出现在一个或者两个层次上,那么该树是完全平衡的。

    那么问题来了,如何得到一颗平衡的二叉查找树?

    许多技术都可以适当的平衡二叉树。一些技术对数据重新排序从而创建一颗平衡的二叉树,另一些技术在由于插入或者删除元素而导致树不平衡时,会重新平衡树。我们首先来探讨如何创建一颗平衡二叉查找树,然后介绍如何重新平衡已有的二叉查找树。

    想要创建一颗平衡二叉查找树,首先要观察这种树的特性,根据观察到的规律总结出来的数学逻辑,其实就是算法。就像下面:

    15483c55cb5be5d3bc2370b160162150.png

    发现了吗?如果将一颗完美的平衡的二叉查找树压平,将数据线性列出,你会发现它是有序的,并且根节点30处于数组A中间的位置。不止如此,根节点30的左子树的根节点20处于数组B的中间位置,根节点30的右子树的根节点47处于数组C的中间位置。以此类推,所有子树的根节点总是处于某个数组的中间位置。这很类似二分查找的逻辑,并且你是否发觉,数组A其实是该二叉树中序遍历的结果。

    这里有个定论:二叉查找树的中序遍历可以得到有序的数据流

    证明也很容易,这里使用自然语言简单描述下:

    假如要对一颗二叉查找树进行中序遍历,首先将其分解成根节点,左子树,右子树。因为中序遍历的逻辑是首先遍历左子树,然后是根节点,最后是右子树。我们可以将它们放到一个栈中,大概长得是这个样子:

    2a9c481b3ba239b022226d41e15e92ef.png

    根据二叉查找树的定义,左子树所有节点小于根节点,右子树所有节点大于根节点。因此,栈此时的状态是有序的。最后,我们将栈中的子树全部分解成新的根节点、左子树、右子树,并且按照上图所示的顺序放入栈中,直到栈中不再存在子树,全部分解成了根节点。最后是这个样子的:

    ad7bbb51dac8dbe5ec8a92739609ccf8.png

    栈中保存的数据流就是中序遍历的结果。由于从分解开始是有序的,并且随后的每一次分解都是有序的,最终形成的数据流也是有序的。

    这就证明了上面的定论: 二叉查找树的中序遍历可以得到有序的数据流

    好吧,说了这么多,其实是在总结我们观察平衡二叉查找树找到的规律:

    将平衡二叉查找树进行中序遍历,可以得到一个有序的数据流,并且根节点处于数据流的中间位置。以此类推,右子树的根节点处于右子树数据流的中间位置,左子树的根节点处于左子树数据流的中间位置。

    根据以上规律,我们可以得到一个创建平衡二叉查找树的算法,首先用自然语言进行描述:

    假设我们有一个有序的数组,数组中元素个数为n。我们可以将数组中间元素指定为根,这个数组现在包含两个子数组:一个包含从数组的开始到刚刚选为根的元素之间的所有元素,另一个包含刚刚选为根的元素到数组的末尾之间的所有元素。根的左子节点指定为第一个子数组的中间元素,根的右子节点指定为第二个子数组的中间元素。以此类推,数组中的每个元素都可以放到二叉树中,最终形成的二叉树就是一颗平衡二叉查找树。

    代码如下:

    a789411bfaf71a1a2a3ee0ea13b75e0a.png

    代码中使用了递归,递归可以使程序逻辑变得简单,但是会加大运行时栈的负担,慎用。我们这里只是探讨算法,因此,使用递归实现是可以的。

    该算法存在严重的缺陷:在创建树之前,所有的数据都必须放在数组中。当必须使用树,但是准备保存到树中的数据仍然在输入的时候,该算法就不太合适了。我们可以使用折中的方法,如果数据在持续输入,我们可以按照创建二叉查找树的方法,将数据保存到二叉树中。数据输入完毕之后,只需要对该树进行中序遍历,就可以得到有序的数据流,然后使用上述的算法,就可以得到一颗平衡的二叉查找树。

    上诉讨论的算法效率有点低,因为在创建完全平衡的树之前,需要使用一个额外的有序数组。为了避免排序,这一算法需要破坏树并用中序遍历把元素放在数组中,然后重建该树,这样做效率并不高,除非树很小。然而,存在几乎不需要存储中间变量也不需要排序过程的算法。这就是DSW算法。该算法可以对已经存在的二叉查找树进行平衡,并且不需要中间变量。

    老规矩,在不劳而获的获取DSW算法之前,我们先自己分析一下如何将一颗二叉查找树进行平衡。先思考一个问题:

    631548c1c1787584ba261e467b1ddb9f.png

    如何将上图中的二叉查找树重新构建成一颗平衡的二叉查找树,为了方便找到规律,这里给出平衡之后的二叉查找树:

    63532533b7891b558caea5b5b3fbe995.png

    是不是发现很相似?如果将平衡之后的二叉查找树从右上角到左下角压平,可以得到和原始二叉查找树相似的结构。那么,通过哪些操作可以将原始二叉树转变成平衡二叉树呢?我们首先观察左上角的4个节点:5、10、20、15。可以屏蔽掉其他节点,把它们当做不存在。如果你了解二叉树节点的左旋操作,马上就能明白,只要将20节点围绕其父节点10左旋转,马上就可以得到平衡之后的二叉树。什么是左旋?左旋有什么作用?我们首先来探讨左旋的作用,然后探讨左旋的原理。左旋可以提升根节点左子树的高度,降低根节点右子树的高度,并且左旋之后依然是二叉查找树。比如,5、10、20、15。10作为根节点,左子树高度为1,右子树高度为2。经过左旋之后,20成为新的根节点,左子树高度提升为2,右子树高度降低为0。可以发现,左旋之后的二叉树依然是二叉查找树。那么左旋到底是什么呢?左旋其实与二叉树节点的合并删除算法非常相似,并且原理是一致的,在数据结构与算法-二叉查找树这篇文章中,详细讲解了合并删除的原理。这里简单描述下左旋的操作以及原理。依然以5、10、20、15节点为例,左旋是针对右子树的根节点来说的,对称的右旋是针对左子树的根节点来说的。在这里,20节点作为10节点的右子节点,可以围绕10节点进行左旋操作。首先,将根节点10以及左子树作为A组,将20节点所在的右子树作为B组,左旋就是将A组合并到B组上。将A组设置为20节点的左子树,将20节点原有的左子树设置为A组的右子树。就像这样:

    2e60e83184db06006c62ce4bacca0b6e.gif

    将A组合并到B组,原则上来讲,只要20节点到10节点的路径中不存在右指针即可,因为,一旦出现右指针,就意味着,B组中存在节点小于A组节点,但是我们都知道,A组是二叉查找树的根节点以及左子树组成,所有节点都小于B组节点(右子树)。在左旋操作中,将A组设置为20节点的左子树,只有一个左指针,因此,该操作是合法的。20节点原有的左子树需要合并到A组上,原则上来讲,只要10节点到15节点的路径中不存在左指针即可,原理和上诉类似。因为10的右子树为空,所以这里就将15节点直接设置为10节点的右子树。到此为止,左旋操作完毕,因为左旋操作本质是二叉查找树中合法的子树合并操作,所以最后的二叉树也是合法的二叉查找树,但是左旋提高了左子树的高度,降低了右子树的高度,左旋和右旋是对称的,有兴趣的可以自行了解。将目光放到平衡二叉查找树上,比较平衡之前的二叉树以及平衡之后的二叉树。可以发现,只要进行两步操作就能实现转变。第一步,分别对20节点、30节点、49节点进行左旋操作。第二步,继续对30节点进行左旋操作。搞定收工,下面总结通用算法。

    如果忽略最后一层的叶子节点,剩余的二叉树是一个完美二叉树的线性排列。那么,该完美二叉树的元素个数是多少呢?我们假设原二叉查找树元素个数为n,完美二叉树的高度为h,那么可以得到不等式2^h - 1 <= n,即h <= lg(n+1),只要不等式向下取整,就可以获取到完美二叉树的高度。那么,完美二叉树元素个数m为2^h - 1。一眼就能看出m是个奇数,并且在第一次左旋时,是从上到下第二个节点开始的,做多少次左旋呢?其实是m/2次。带入到上述二叉查找树中,完美二叉树高度h为lg(12 + 1),向下取整为3,完美二叉树元素个数m为2^h - 1,即7,第一次左旋次数为m/2,即3。上述平衡二叉查找树过程中,一共有两步,第一步做了3次左旋,第二步做了1次左旋。可以发现,根据不同高度(h)的完美二叉树,需要做不同的步数(p),它们的关系是p = h - 1。当然,终止条件也可以是另一种。可以发现,假设完美二叉树元素个数为m,那么第一步左旋次数为m/2,记为m1,第二步左旋次数为m1/2,记为m2,以此类推,如果m(n)小于1,证明已经平衡完毕。

    到此为止,我们已经总结出了平衡二叉查找树的关键逻辑。问题从平衡二叉查找树转变成了如何获取类似下图的二叉树?

    c1bfcc7637c9d6ce8f9bd6060af9b5e2.png

    可以发现,二叉查找树总的元素个数n为12,从右上到左下,最外层的节点数m是7。发现了吗?其实7就是该二叉查找树包含的完美二叉树元素个数。通过lg(n + 1)向下取整可以得到完美二叉树的高度h,通过2^h - 1可以得到完美二叉树元素个数m。将12带入公式,可以得到h为3,m为7。内层有5个节点5、15、23、28、40,如果分别对它们进行右旋操作,可以得到以下图形:

    a9fcada4940d23e5f9dc448f0665fdef.png

    是不是很熟悉?这不就是二叉查找树最差的链表形式嘛!真是造化弄人,我们在平衡二叉查找树的过程中,竟然还需要借助二叉树的链表形式。从链表形式的第二个节点开始,每次隔一个节点进行n - m次左旋,即5次左旋,就能得到我们想要的二叉树形式。现在问题又转变成了,如何从一个普通的二叉查找树获取到最差的链表形式?答案是从根节点开始,沿着右子树,不停的右旋(提高右子树高度,降低左子树高度),直至所有左指针为空。就像下面动图:

    ad66f94ee93050dee1addcf51b12aa77.gif

    到目前为止,我们已经探讨出从普通二叉查找树到平衡二叉查找树的过程。其实这就是DSW算法。总结如下:

    • 创建主链

    创建主链就是从普通二叉查找树转变到只有右指针的链式结构,伪代码如下:

    7b6e93b766b7a300d91d6c9321618bf7.png

    可以发现,创建主链的过程就是不停的右旋,直至二叉树中不存在左指针。

    • 主链转换成平衡树

    主链转换成平衡树其实有两步,第一步就是从主链转变成类似下面的图形:

    de82f5e020e2a74e02485648149445cf.png

    二叉树一共有n(12)个节点,外层节点数n(7)是该二叉树包含的完美二叉树个数,计算方式在上面已经探讨过,就是lg(n + 1)向下取整获取完美二叉树高度h(3),然后由2^h - 1获取到完美二叉树个数m(7),那么内层叶子节点个数就是n - m,即5个。我们只要从主链的第二个节点开始,每隔一个节点进行一次左旋,一共进行n - m次(5次)即可。

    第二步就是将以上图形转变成平衡二叉查找树,算法逻辑已经探讨过了。其实就是将外层节点从第二个开始,每隔一个节点进行一次左旋,一共进行m/2次,记为m1。这时,最外层节点个数成为m1,继续从第二个开始,每隔一个节点进行一次左旋,一共进行m1/2次,记为m2。以此类推,终止条件是m(n)小于1,或者是循环h - 1次。

    算法中的逻辑,也就是为什么这么做?全部已经在上面探讨清楚,可以反复阅读加深理解。

    第二步的逻辑总结一下就是不停的左旋(提高左子树高度,降低右子树高度),直至二叉查找树平衡。

    伪代码如下:

    8617b0468b03be91c3fafa1abaf23c72.png

    DSW算法已经探讨完毕。DSW算法是对已有的二叉查找树进行全局平衡的算法,二叉树中的每个节点都有可能改变位置。它的算法复杂度是O(n),这一时间随着n线性增长,而且只需要很小且固定的存储空间。总之,DSW是一个非常优秀的对二叉树进行全局平衡的算法。

    到目前为止,我们探讨了从数组中如何创建一颗平衡的二叉查找树以及如何对已有的普通二叉查找树进行全局平衡。但是,还有一个问题没有解决,二叉查找树之所以不平衡,通常是由于插入或者删除操作造成的。这种不平衡通常是局部不平衡,这种时候不需要使用DSW算法对全局进行平衡。重新平衡只需要在局部进行即可,这就是大名鼎鼎的AVL树,这是我们下节需要探讨的内容。

    数据结构与算法-二叉查找树

    展开全文
  • 或许你需要从一个大文件中查找某个特定的值,或者算法需要一个较大的查询。这时,你也许会采用2中不太好做法:第一种是创建一个本地变量,然后每次执行该算法时都生成一大块垃圾;第二种则是创建一个成员变量,...
  • CAD容器对象

    2019-07-11 14:31:39
    下面介绍如何向符号、字典和组添加实体,怎样使用遍历来查询容器的内容,以及怎样创建和使用自己的字典和扩展记录来管理应用程序数据和对象。 符号 符号具有这样的功能:它可以包含数据库对象,这些数据库...
  • 二分查找

    2017-04-24 18:45:56
    好啦,回归正题,二分查找又叫二分查找,它的前提是线性表中的记录必须是有序的,通常常见的就是由小到大排序,查找的基本思想是:有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功...
  • 我觉得java的一些特性与对象在内存的分配方式是密切相关的。 比如说:Java的多态,正是因为new出的对象分配的,而这种内存分配方式编译期无需知道此对象所需要的空间和生存周期。 现在我很困惑的是...
  • 本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、透视表中使用宏和...
  • 本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、透视表中使用宏和...
  • 本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、透视表中使用宏和...
  • 本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、透视表中使用宏和...
  • “动作”包括:OpenGL渲染、拾取、计算包围盒、计算变换矩阵、写文件、场景中查找某些特定类型的节点等。 章节10,“处理事件和选择器(Selection)”,解释Inventor如何从窗口系统中接收事件。描述选择器节点如何...
  • 高级编程语言的数据类型表示的是占据内存区域的大小和存储该内存区域的数据类型对象数据。根据数据的大小链表分叉成两个方向的数据结构称为二叉查找树。计算机是进行数据处理的设备,而程序表示的就是处理顺序...
  • 第12章 术语表中记录术语 12.1 导言 12.2 术语表 12.3 活动及其相互之间的依赖关系 12.4 销售点系统的术语表的示例 第13章 系统行为--系统顺序图 13.1 导言 13.2 活动及其相互之间的依赖关系 13.3 ...
  • MYSQL中文手册

    2013-03-11 21:21:34
    3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 ...
  • mapx中文培训教程

    2013-09-17 15:47:13
    第五章 地图中查找图元 37 第一节 Find对象 37 第二节 FindFeature对象 38 第六章 工具 41 第一节 MapX工具概述 41 第二节 创建自定义工具 43 第三节 创建多边形绘制工具(Polytools) 46 第七章 数据绑定 49 第一...
  • MySQL 5.1中文手冊

    2009-12-11 09:43:12
    3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有...
  • 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有...
  • Python核心编程第二版(中文)

    热门讨论 2015-04-23 16:40:13
    目录 ······ 第1部分 Python核心 ...15.3.5 search()一个字符串中查找一个模式(搜索与匹配的比较) 15.3.6 匹配多个字符串(|) 15.3.7 匹配任意单个字符(.) 15.3.8 创建字符集合...
  • 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 3/24 页)2006-11-02 19:12:13 MySQL 5.1 Reference Manual 3.5. 批处理...
  • mysql5.1中文手册

    2008-01-09 09:54:20
    将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:...
  • ”本来C++是被定义为左位移运算符和右位移运算符的,由于iostream头文件对它们进行了重载, 使它们能用作标准类型数据的输入和输出运算符。 <span class="hljs-meta">#include<fstream>//读写文件 ...
  • Python核心编程(中文第二版)

    热门讨论 2009-10-02 12:08:14
     3.4.2 主程序书写测试代码   3.5 内存管理   3.5.1 变量定义   3.5.2 动态类型   3.5.3 内存分配   3.5.4 引用计数   3.5.5 垃圾收集   3.6 第一个Python程序   3.7 相关模块和开发...
  •  本书紧密围绕程序开发人员编程遇到的实际问题和开发应该掌握的技术,全面介绍了应用C#进行程序开发的技术和技巧。全书包括窗体与界面设计、控件应用、组件应用、图形技术、多媒体技术、文件系统、操作系统与...
  • Lotus Notes R5的客户端搜索和保存;管理日历项和任务;使用群组日历和安排计划;复制数据库;操作附件;自定义Notes客户端。 目 录 前言 第1学时 Notes起步 1 1.1 Lotus Notes和Domino概述 1 1.2 了解Notes的...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 149
精华内容 59
关键字:

怎样在表中查找对象