begin

C++ Vector 用法

两盒软妹~` 提交于 2019-12-27 06:29:30
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。 (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl; (6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a; (7)删除元素: vec.erase(vec.begin()+2);删除第3个元素 vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始 (8)向量大小:vec.size(); (9)清空:vec.clear(); 2 vector的元素不仅仅可以使int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。下面是一段简短的程序代码: #include<stdio.h> #include<algorithm> #include<vector> #include

c++中 vector 的用法

空扰寡人 提交于 2019-12-27 06:23:53
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。 (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl; (6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a; (7)删除元素: vec.erase(vec.begin()+2);删除第3个元素 vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始 (8)向量大小:vec.size(); (9)清空:vec.clear(); 2 vector的元素不仅仅可以使int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。下面是一段简短的程序代码: #include<stdio.h> #include<algorithm> #include<vector> #include

awk学习手记-1

[亡魂溺海] 提交于 2019-12-26 11:10:27
awk学习手记-1 awk学习网址推荐***http://www.zsythink.net/archives/tag/awk/*** AWK的学习有助于提升工作效率,现在抽时间总结一下,AWK的基础使用方法。 实际上,awk是一门编程语言,他支持条件判断,数组,循环操作等功能,我们一般把awk当作脚本语言解释器。 grep 、 sed 、 awk 被人们称为Linux三剑客。简单总结下各位特长: grep:擅长单纯的文本查找和匹配 sed:擅长编辑匹配到的文本。 awk:擅长按照需求格式化文本。 sed 和 awk 也都有文本查找和匹配功能,不然不可能进行编辑和格式化。 一、AWK官方 awk是一个报告生成器,它拥有强大的文本格式化能力。 解释:报告可以理解成表格,awk善于将文本整理成表格的样式然后再展示出来。 二、awk基础 awk基础语法: awk [options] 'program' file1,file2... 将上述语法中的program进行细化,可以得到awk扩展语法: awk [options] 'Pattern {Action}' file awk语法中action指的就是动作,awk格式化文本并将其输出。 从最简单的案例开始认识awk,先不用options 也不急着制定pattern ,直接来action。 例一、 [root@my127 awk] # cat

二分查找

怎甘沉沦 提交于 2019-12-26 10:23:40
二分查找 package com . ysx . common ; /** * @author youngbear * @email youngbear@aliyun.com * @date 2019/12/25 22:00 * @blog https://blog.csdn.net/next_second * @github https://github.com/YoungBear * @description */ public class BinarySearchUtils { /** * 二分查找 * @param nums 整型数组 * @param target 目标值 * @return 查找匹配的下标,如果没有匹配的则返回-1 */ public static int binarySearch ( int [ ] nums , int target ) { if ( nums == null || nums . length == 0 ) { return - 1 ; } int begin = 0 ; int end = nums . length - 1 ; int result = - 1 ; while ( begin <= end ) { // 这种写法是防止begin+end溢出 int middle = begin + ( end - begin )

Oracle-PLSQL基本操作

僤鯓⒐⒋嵵緔 提交于 2019-12-26 09:51:54
Oracle-PLSQL基本操作 1.查询记录并打印 declare --应用型变量:emp.sal是什么类型,那么通过emp.sal%type就可以指明vsal的类型 vsal emp . sal % type ; begin --将值赋给vsal select sal into vsal from emp where empno = 7369 ; --打印 dbms_output . put_line ( vsal ) ; end ; declare --声明记录型变量 vrow emp % rowtype ; begin select * into vrow from emp where empno = 7369 ; dbms_output . put_line ( '姓名' || vrow . ename ) ; end ; 条件判断 declare age number : = & 输入年龄 ; begin if age < 18 then dbms_output . put_line ( '未成年' ) ; elsif age > 18 and age <= 35 then dbms_output . put_line ( '年轻人' ) ; elsif age > 35 and age <= 65 then dbms_output . put_line ( '中年人'

学习笔记 - 斯特林反演

偶尔善良 提交于 2019-12-26 01:24:56
第一类斯特林数 将 \(n\) 个不同的小球组成 \(m\) 个项链的方案数,计做 \(\begin{bmatrix} n\\m \end{bmatrix}\) 。这就是(无符号)第一类斯特林数。 第一类斯特林数有一个很显然的递推式: \[ \begin{bmatrix} n\\m \end{bmatrix}=\begin{bmatrix} n-1\\m-1 \end{bmatrix}+\begin{bmatrix} n-1\\m \end{bmatrix}\cdot(n-1) \] 枚举两种情况,第一种是新开辟一个环,第二种是接在已经有的点的后面。 性质 性质1 \[ n!=\sum_{i=0}^n \begin{bmatrix} n\\i \end{bmatrix} \] 可以从置换的角度理解。左边是所有可能的置换的数量,右边有在枚举 \(n\) 个数分成 \(i\) 个循环的方案数之和。两者显然相等。 性质2 定义 \(x^{\overline n}\) 表示 \(\prod\limits_{i=0}^{n-1} x-i\) , \(x^{\underline n}\) 表示 \(\prod\limits_{i=0}^{n-1} x+i\) 。 则 \[ x^{\overline n}=\sum_{i=0}^n\begin{bmatrix} n\\i \end{bmatrix

C++ begin()和end()

元气小坏坏 提交于 2019-12-25 04:07:41
begin(a) 指向数组 a 的第一个元素, end(a) 指向数组 a 最后一个元素 之后的一个元素 #include <iostream> using namespace std; int main() { int ia[] = {0,1,2,3}; int *beg = begin(ia); int *last = end(ia); cout << *beg << endl; cout << *(last-1) << endl; return 0; } 0 3 [Finished in 0.7s] 来源: https://www.cnblogs.com/yaos/p/12094536.html

翻转单词顺序列

空扰寡人 提交于 2019-12-25 00:56:34
题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 这道题可以通过两次翻转来解决,先通过 reverse(str.begin(), str.end()) 将整个字符串翻转,再对每个子部分翻转,实现方式是定义两个指针i和j,让j从i开始,直到走到空格,然后翻转 reverse(str.begin() + i, str.begin() + j),此时j指向的是空格,让i = j,因为在for循环中有i++,所以i指向下一段字符串的开头。 c++代码如下: 1 class Solution { 2 public: 3 string ReverseSentence(string str) { 4 if(str.empty()) return str; 5 reverse(str.begin(), str.end()); 6 for(int i = 0; i < str.size(); i++){ 7 int j = i; 8 while(j < str.size() &&

[递归]-数组求和

浪子不回头ぞ 提交于 2019-12-24 09:15:01
public class sum { // 普通循环 public static int fn1(int[] a) { int sum = 0; for (int i = 0; i < a.length; i++) { sum += a[i]; } return sum; } // 递归,已知数组和开始位置 public static int fn2(int[] a, int begin) { if (begin == a.length) return 0; int sum = 0; sum += fn2(a, begin + 1); return sum + a[begin]; } // 递归,已知数组和结束位置 public static int fn3(int[] a, int end) { int sum = 0; if (end > 0) sum += fn3(a, end - 1); return sum + a[end]; } public static void main(String[] args) { int[] arr = { 2, 7, 39, 102 }; System.out.println(fn1(arr)); System.out.println(fn2(arr, 0)); System.out.println(fn3(arr, arr.length

二分图最大权匹配模板(pascal)

耗尽温柔 提交于 2019-12-24 02:50:34
用uoj80的题面了: 从前一个和谐的班级,有 n l nl 个是男生,有 n r nr 个是女生。编号分别为 1 , … , n l 1,…,nl 和 1 , … , n r 1,…,nr。 有若干个这样的条件:第 v v 个男生和第 u u 个女生愿意结为配偶,且结为配偶后幸福程度为 w w。 请问这个班级里幸福程度之和最大是多少? 输入格式 第一行三个正整数, n l , n r , m nl,nr,m。 接下来 m m 行,每行三个整数 v , u , w v,u,w 表示第 v v 个男生和第 u u 个女生愿意结为配偶,且幸福程度为 w w。保证 1 ≤ v ≤ n l 1≤v≤nl, 1 ≤ u ≤ n r 1≤u≤nr,保证同一对 v , u v,u 不会出现两次。 输出格式 第一行一个整数,表示幸福程度之和的最大值。 接下来一行 n l nl 个整数,描述一组最优方案。第 v v 个整数表示 v v 号男生的配偶的编号。如果 v v 号男生没配偶请输出 0 0。 样例一 input 2 2 3 1 1 100 1 2 1 2 1 1 output 100 1 0 限制与约定 1≤nl,nr≤400, 1≤m≤160000, 1 ≤ w ≤ 10 9 。 时间限制 : 1 s 1s 空间限制 : 256 MB