【C++】何谓算法?何谓容器操作?

这里讲的是根据《C++ Primer》第四版中文版的,没有书的朋友可以去网上搜搜,有很多。

在《C++ Primer》P345面有这么一句话:

 

算法不直接修改容器大小。如果需要添加或删除元素,则必须使用容器操作。

 

何谓算法?何谓容器操作?

 

 

 

在P336面就讲到:

泛型算法:因为他们实现共同的操作,所以称之为“算法”;

而“泛型”指的是它们可以操作在多种类型上------不但可作用于vector 或 list 这些标准库类型,还可作用于内置数组类型,甚至其它类型的序列上。

 

 

 

在P338面下方:

算法永不执行容器提供的操作。

算法是基于迭代器及其操作实现的,而并非基于容器操作。

使用“普通”的迭代器时,算法从不修改基础容器的大小。

标准库提供一种特殊的迭代器:插入器。插入器可以在基础容器上执行插入运算。

 

 

 

现在看P344面“1.去除重复”的代码:

 

分析:sort和unique是算法,而erase是容器操作。

细心的人可能发现了算法与容器操作的不同使用方式。

 

 

 

由此根据个人理解总结:

1.算法不是基于容器的,故不能用成员选择操作符“.”;

2.容器操作是基于容器的,因为容器是类,而容器操作即是容器的成员函数,故要用成员函数选择操作符指明是属于哪个容器。

 

 

 

以上纯属个人的一点拙见,也许很多地方表达的不标准,希望大家能理解就好。

因为自己在学的时候分不清算法与容器操作始终弄不清楚,总感觉都是个函数,没什么区别。直到看第二遍时当看到上面那个例子时才有了点清晰的认识,故写出来与大家一同分享。

 

                                                                                           2010-3-10     18:34:52

 

 

 

C++奋斗乐园①群(已满):19333724

C++奋斗乐园②群:23840480

我们的论坛(刚建立。。。) www.cppleyuan.com

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值