抽象概念一定要被具象化才能被理解吗?

转载自 https://www.yueyao1982.com/phil_faq/faq_abstraction.html 若侵犯了内容创作者的权益,请联系删除 正文: 恰恰相反,具体的问题一定要抽象化之后才能理解,虽然这乍听起来比较奇怪。我们不妨想一想中学物理中最简单的问题,比如斜面上物体的运动。我们是先把物体和斜面都作了抽象化——物体和斜面都有很多细节,即“象”,而这些“象”被我们忽略了,或者说是抽离了,亦即“抽象”。所以,我们通过牛顿力学来理解机械运动,只是在理解抽象物体的相互关系,比如它们之间的作用,即力,比如它们之间的相对运动:简而言之,我们是在研究一个抽象模型,并试图理解这个模型。我们能做到最好的,就是我们的抽象化很合理,亦即被抽掉的“象”都是次要的;相应的,我们能得到最好的结果就是:模型的预测结果和实际的观测结果之间误差很小,一般来说不能没有误差,除非被观测值的可能性是离散甚至是有限的——比如电子的自旋只有两种可能。即使我们真的把主要因素抽掉,我们仍然可以理解那个被抽象出来的模型,只是那个模型和经验世界已经不能很好的对应了。 稍微深入一些来说,并非所有的抽象概念都能具象化,或者说概念的世界至少从规则和可能性这些方面来讲,并不受制于经验的世界,虽然没有经验概念就无从产生。比如我们观察过很多“经验中的马”,忽略了彼此不同的“象”,比如颜色、大小、公母等因素,就产生了“马的概念”;同样,我们观察过很多“经验世界中的鸟”,忽略了彼此不同的“象”,就产生了“鸟的概念”。“马的概念”和“鸟的概念”都可以被具象化到自然界中真实的动物。然而,我们的思维还可以对概念进行加工,比如我们对“鸟”概念进行切分,得到了“翅膀的概念”(当然它还是可以被具象化的)。然后我们把“翅膀的概念”和“马的概念”进行组合,得到了“天马”的概念——这个概念虽然可以具象化为具体的玩具或模型,但不再能具象化为自然界中的动物了。与此相似,我们还可以进行更复杂的概念建构,比如用更多的翅膀构建出“六翼天使”,比如用多种动物的不同部分构建出了“龙”和“麒麟”等神兽。当然,到此为止,这些概念至少还是可以被在一定程度上具象化,比如画成图画,比如做成雕刻。但是,更进一步的概念建构使这点也不可能了。如果我们把自然数的计数泛化到空间的维度上,我们就构建出了N维空间——1维空间、2维空间和3维空间是可以被具象化的,4维...

统计容器数据

 统计容器数据的主要内容

    统计容器数据主要包括两个方面,即容量和元素数。容量指的是该容器当前所能容纳的元素的总数,元素数指的是当前容器中容器的格式。实际上只有向量的容量和元素数可能不一致,对其他容器两者的数量是一致的。各个容器求元素数的方法是一致的,都调用size方法。
    
    对于向量,有一个成员函数是resere(size_type size),该函数用来为当前向量对象预留至少可以存储size个元素的空间。

    其他方法

    还有一些方法是在使用容器时经常用到的,例如:
        begin:求指向容器开始元素的迭代器。
        end:求容器结尾元素最后一个存储单元的迭代器。
        rbegin:求指向容器反向开始元素的迭代器。
        rend:求容器反向结尾元素后一个存储单元的迭代器。
        swep:交换两个容器的内容。
        ==,!=, <, <=, >, >=:比较运算符,判断两个容器之间的关系。

swap方法

    STL中的容器一般都会提供swap方法,其目的是交换两个容器的内容。交换内容的两个容器,其类型必须是相同的,比如同为向量,或者同为链表。另外,两个容器的大小最好也形同。
    

    为了分别容器间的大小比较,STL还提供了一系列关系运算符。这些运算符都是全局运算符,定义在容器之外,并声明为容器模板类的友元。容器比较的原则是“逐个遍历,一一比较”,即
    容器比较的结果,即第一对不相等元素间的边界结果。
    如果两个容器元素数目不相等,则容器不相等。
    例如:
    
    
       
       这里添加代码
int main(){
    vector<int> v1, v2;
    v1.push_back( 1 ); // 在 v1 中加入数据
    v1.push_back( 2 ); 
    v1.push_back( 4 ); 
    v2.push_back( 1 ); // 在 v2 中加入数据
    v2.push_back( 3 ); 
    cout<< "v1 < v2" << v1 < v2 <<endl; // 输出 1,true 
    return 0;
}
...此段代码v“1 < v2” 报错,可能是头文件不支持,也可能是STL版本不同导致的。

此博客中的热门博文

算法的八大常用思想