按 ‘ C/C++ ’ 分类归档

VB如何判断split后得到数组的长度

都是一些小笔记。如何判断split后得到数组的长度?Search了很久也没有找到关于Array的length或者size属性。只有找到了UBound()和LBound()函数。

UBound()返回一个   Long   型数据,其值为指定的数组维可用的最大下标。 LBound()则返回的是最小下标。如果索引是从0开始,那么数组长度:UBound(arrName) + 1。

VB如何检查要读取的文件是否存在

工作需要用VB修改一点东西。所以现学现用。程序需要读取一个文件,我们通常都会检查是否存在该文件,否侧抛出一个异常。找了半天找到一个异常类:FileNotFoundException。但是不知道怎么用呢?System.IO.FileNotFoundException。

找到另外一个解决方法,就是检查该文件是否存在,使用的是Dir()函数。

Private Sub Command1_Click()
Dim strData As String
If Dir(App.Path & "\hello.txt") <> "" Then
    Open App.Path & "\hello.txt" For Input As #1
    MsgBox (Input(LOF(1), 1))
    Close #1
Else
    MsgBox "File doesn't exist!"
    Exit Sub
End If
End Sub

[转]volatile关键字

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

使用该关键字的例子如下:

int volatile nVint;

当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。 猛击阅读全文

C++构造函数初始化列表

类对象的构造 顺序是这样的:

1.分配内存,调用构造函数 时,隐式/显示的初始化各数据 成员

2.进入构造函数后在构造函数中执行一般计算

那么什么情况下使用构造函数的初始化列表呢?总的来说可以分为两种情况:一种是必须使用,二是为了高效。

构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。首先来看下初始化列表的一个简单应用:

class CExample {
public:
    int a;
    float b;
    //构造函数初始化列表
    CExample(): a(0),b(8.8)
    {}
    //构造函数内部赋值
    CExample()
    {
        a=0;
        b=8.8;
    }
};

上面的例子中两个构造函数的结果是一样的。上面的构造函数(使用初始化列表的构造函数)显式的初始化类的成员;而没使用初始化列表的构造函数是对类的成员赋值,并没有进行显式的初始化。

初始化和赋值对内置类型的成员没有什么大的区别,像上面的任一个构造函数都可以。对非内置类型成员变量,为了避免两次构造,推荐使用类构造函数初始化列表。但是某些情况下,我们必须用带有初始化列表的构造函数。 猛击阅读全文

为何a[5]==5[a]呢

在Stackoverflow上看到有人提到在C语言数组中有a[5]==5[a]。这涉及到指针的地址计算问题。

首先a[5],如果把a当成该数组的首地址,那么其相当于:

*(a + 5) 

而5[a]则相当于:

*(5 + a) 

那么从数学的角度来看,它们应该是相等的。

这个例子也正是数组名作为指针的一个直接典型。a表示的是内存地址,a[5]表示的是从起始地址a开始的第五个元素值,而这个元素的地址恰为“a+5″。

还有一个原因是,70年代设计C语言是,由于没有足够的内存空间,所以C编译器并没有做太多的语法检查,这里的X[Y]被转义为*(X+Y)。所以上面的代码解释为*(5 + a)。

英文讨论帖:http://stackoverflow.com/questions/381542/in-c-arrays-why-is-this-true-a5-5a

最小生成树:Kruskal算法Java和Python实现(源码下载)

关于最小生成树的Kruskal算法,参考百度百科。动态演示参考:Here。解析来看我们如何实现该算法。

我们设计了一个简单的例子,如图所示(图中节点间的距离可能跟边值大小不成比例~,红色边为最小生成树的结果!).

最小生成树
猛击阅读全文