记录 C++ STL 中 一些好用的函数--持续更新 (for_each,transform,count_if,find_if)
在日常的编程中,有这么几种操作还是比较常见的:
把一组数据都赋值成一个数,在一组数据中查找一个数,统计一组数据中符合条件的数等等。
一般的写法可以用循环,没有什么是循环不能搞定的。假如在这里怎么用介绍循环写,估计要被说骗点击率了。。。
首先,对于批量赋值,我们有这样的几个函数可以用
1.memset(cstring)
适用于内置数据类型数组的批量赋值,因为它是按照字节赋值的,所以对于int类型只可以赋值为-1,0,对于char类型可以赋值为任意字符
例:memset(A,0,sizeof(A));//A为int[10]类型变量
2.fill(algorithm)
适用于内置类型数组,自定义类型数组(只支持一维数组)和容器类。因为它是按照单元赋值的,因此可以为数组中每一个元素赋值为任何合法值。在重载了类中=运算符之后,我们还可以将容器内对象批量赋值为一个对象值。
fill(A,A+10,5); //A为 int[10]类型变量
fill(vec.begin(),vec.end(),9); //vec 为vector<int>类型
3.for_each(algorithm)
适用于任何容器以及数组,可定制性功能强,可以利用自定义函数或者自定义仿函数进行操作(包括赋值,输出值等等)
例:
#include <cstdio>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
class setNode{
Node u;
public:
setNode(Node u):u(u){}
void operator ()(Node & node) {
node = u;
}
};
void print(Node & u){
printf("(%d,%d)\n",u.x,u.y);
}
int main(){
vector<Node> vec;
vec.push_back(Node(,));
vec.push_back(Node(,));
for_each (vec.begin(),vec.end(),setNode(Node(,)));
for_each (vec.begin(),vec.end(),print);
return ;
}
记录 C++ STL 中 一些好用的函数--持续更新 (for_each,transform,count_if,find_if)的更多相关文章
- C#、Java中的一些小知识点总结(持续更新......)
前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...
- iOS中容易混淆的知识点(持续更新中)
1.成员变量和属性的区别 @interface Person : NSObject { NSString *_sex; } @property (nonatomic, copy) NSString * ...
- STL中的unique和unique_copy函数
一.unique函数 这个函数的功能就是删除相邻的重复元素,然后重新排列输入范围内的元素,并返回一个最后一个无重复值的迭代器(并不改变容器长度). 例如: vector<); ; i < ...
- Spring配置文件中的那些标签意味着什么(持续更新)
前言 在看这边博客时,如果遇到有什么不清楚的地方,可以参考我另外一边博文.Spring标签的探索,根据这边文章自己来深入源码一探究竟.这里自己只是简单记录一下各标签作用,每个人困惑不同,自然需求也不一 ...
- 个人在 laravel 开发中使用到的一些技巧(持续更新)
1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...
- springboot实现web应用过程中的摸爬打滚(持续更新ing)
最近在做公司的网站项目,后端用到springboot.怎么说呢,记录总结一下自己开发过程中遇到的坑和一些心得体会,以及一些技巧.方便以后回顾复习,也供同行们参考. 开发环境:eclipse2018-1 ...
- Tensorflow中Tensor对象的常用方法(持续更新)
Tensor是Tensorflow中重要的对象.下面是Tensor的常用方法,后面还会写一篇随笔记录Variable的用法. 1. 生成一个(常)Tensor对象 >>>A = tf ...
- 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)
1)Type.IsGenericType类似属性变更 以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断: 以下是.net core(nets ...
- Linux常用命令说明(记录自己Linux命令使用情况,后续会持续更新)
首次记录时间--20170602 感觉自己Linux命令使用掌握的情况非常差,今天先记录当前会的几个. 1#cd(change directory) 切换工作目录(或者叫修改当前目录) eg. cd ...
随机推荐
- Linux各个文件及其含义
树状目录结构: 以下是对这些目录的解释: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像 ...
- linux 学习第十三天(screen不间断会话、apache服务、SELinux安全子系统)
一.screen 命令不间断会话 1.安装screen(从系统镜像作为yum仓库安装) 1.1.加载系统镜像 1.2.mount /dev/cdrom /media/cdrom/ (挂在系统镜像) ...
- cannot find module 'xxx' 解决办法
先将node_module文件夹删掉 工程目录下输入命令:npm clean cache 查看package.json里有没有依赖项,有的话npm install 没有就npm install exp ...
- PHP-学习笔记-进阶
PHP-学习笔记-进阶 PHP类和对象之定义类的方法 访问控制的关键字代表的意义为: public:公开的 protected:受保护的 private:私有的 我们可以这样定义方法: class C ...
- Python编程小坑
在Pycharm中编辑文本文件,如果使用\r\n会产生两个空行? exit("xxx),会导致Process finished with exit code 1,所以如果要输入信息然后退出, ...
- 从零开始一个http服务器(五)-模拟cgi
从零开始一个http服务器-模拟cgi(五) 代码地址 : https://github.com/flamedancer/cserver git checkout step5 运行: make cle ...
- python正则表达式03--字符串中匹配数字
import re # \d+ 匹配字符串中的数字部分,返回列表 ss = 'adafasw12314egrdf5236qew' num = re.findall('\d+',ss) print(nu ...
- 学号20155308 2006-2007-2 《Java程序设计》第3周学习总结
学号20155308 2006-2007-2 <Java程序设计>第3周学习总结 教材学习内容总结 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属 ...
- 20155338 2016-2017-2《Java程序设计》第1周学习总结
20155338 2016-2017-2<Java程序设计>第1周学习总结 了解成绩构成 成绩构成:100分=翻转课堂考核12次(512 = 60)+ 实验5次(3 5 =15)+ 团队项 ...
- C#基础之接口
对于接口一直以来都清楚自己理解的不深入,这两天重温以前的代码时更加发现对接口的理解仅仅限于定义而已,得好好学学接口了. 1.接口的特点 接口的定义是指定一组函数成员而不实现成员的引用类型,其它类型和接 ...