c++ primer之10.1 泛型概述

在顺序容器中,没有定义可以满足用户(程序员)所需的更多功能接口,所以标准库定义了一组泛型算法,之所以称为“泛型的”,适用于不同类型。

泛型算法一般不直接操作容器,而是遍历迭代器的元素范围来进行操作。

标准库算法find:

 1 #include <iostream>
 2 #include <vector>
 3 #include <algorithm>
 4
 5 using namespace std;
 6
 7 int main()
 8 {
 9     cout << "Hello World!" << endl;
10
11     int val = 42;\\要查找的值
12     vector<int> vec = {1, 32, 8, 42};
13     auto result = find( vec.cbegin(), vec.cend(), val );
14
15     cout << "the value:" << val << ( result == vec.cend() ? " is not pressent" : " is pressent") << endl;
16
17     return 0;
18 }

10.1 节练习

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4
 5 using namespace std;
 6
 7 int main()
 8 {
 9     vector<int> vec = { 1, 9, 4, 8, 5, 5 };
10     int val = 5;
11
12     cout << "vec == 5 有: " << count( vec.begin(), vec.end(), val );
13
14     return 0;
15 }

10.2 节练习

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 #include <list>
 5
 6 using namespace std;
 7
 8 int main()
 9 {
10     cout << "Hello World!" << endl;
11
12     list<string> listStr = { "xcd", "chuandong", "mmd" };
13     string strVal = "xcd";
14
15     cout << count( listStr.begin(), listStr.end(), strVal );
16
17     return 0;
18 }

关键概念:算法永远不会执行容器的操作

{

泛型算法本身不直接执行容器的操作,而是执行迭代器的操作,而迭代器执行容器的操作。

}

时间: 2024-12-17 10:52:50

c++ primer之10.1 泛型概述的相关文章

C++ Primer学习总结 第10章 泛型算法

第10章 泛型算法 1.    find()泛型算法使用示例: 2.    只读算法accumulate:对所给范围的元素求和并返回. 注意accumulate的第3个参数决定着它的返回类型. 即如果第3个参数是double,就算迭代器里都是int,最终还是返回double类型的数. 3.    只读算法equal:比较前两个迭代器表示范围的所有元素是否与第3个迭代器表示的对应位置的元素都相同,如果相同返回true.两个容器类型可以不同,保存的元素类型也可以不同,只要元素之间可以比较即可.如st

C++ Primer笔记6_STL之泛型算法

1.泛型算法: 大多数算法定义在头文件algorithm中,标准库还在头文件numeric中定义了一组数值泛型算法 只读算法: 举例: find函数用于找出容器中一个特定的值,有三个参数 int val = 10;//val为我们需要查找的值 auto result = find(vec.begin(), vec.end(), val): cout << "The value "<< val << (result == vec.end() ? &qu

19._1泛型概述

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _19._1泛型概述 { class Program { static void Main(string[] args) { //集合与数组:1长度可以改变 2.添加数据时,不用考虑具体类型boject 3.泛型可以添加自身 List<int>

Java学习笔记_26_泛型概述

                                                               泛型概述 在Java中存入容器中的对象再取出时需要转换类型,因为对象加入容器会被转换成Object类型,而取出时要转换成实际类型.但向  下类型转换都 是存在潜在危险的,因此应该尽量避免它们.  Java的泛型: 所谓泛型就是在定义(类.方法.形参.成员变量等等)的时候,指 定它们为通用类型,也就是数据类型可以是任意类型. 泛型为提高大型程序的类型安全和维护带来了很大的潜

《C++primer》v5 第10章 泛型算法 读书笔记 习题答案

10.1 using namespace std; int main() { vector<int> vec; int a; cin>>a; int v; while(cin>>v) vec.push_back(v); cout<<a<<" : "<<count(vec.begin(),vec.end(),a)<<endl; return 0; } 10.2 using namespace std; i

【C++ Primer 第10章】 1.概述

泛型算法 find(vec.begin(), vec.end(), val)                                                                                                                                                               1 find(vec.begin(), vec.end(), val) 原文地址:https://www.

【C++ Primer | 10】泛型算法

1 find(beg, end); 2 count(beg, end); 3 reverse(beg, end); 4 fill(beg, end, val); 5 sort(beg, end); 6 stalbe_sort(beg, end); 7 min(val1, val2); 8 max(vl1, val2); 9 min_element(beg, end); 10 ma_element(beg, end); 11 accumulate(beg, emd, val); //<numeri

C++primer第十一章 泛型算法

标准库容器定义的操作非常少.标准库没有给容器添加大量的功能函数,而是选择提供一组算法,这些算法大都不依赖特定的容器类型,是“泛型”的,可作用在不同类型的容器和不同类型的元素上. 因为它们实现共同的操作,所以称之为“算法”:而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于 vector 或 list 这些标准库类型,还可用在内置数组类型.甚至其他类型的序列上. 11.1. 概述 假设有一个 int 的 vector 对象,名为 vec,我们想知道其中包含某个特定值.解决这个问题最简单的

Java基础知识强化之集合框架笔记30:集合之泛型概述和基本使用

1. 泛型的引入: (1)首先我们看看下面这一段代码,如下: 1 package cn.itcast_01; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 6 7 public class GenericDemo { 8 public static void main(String[] args) { 9 // 创建 10 ArrayList<String> array = new ArrayList<Str