string函数

C++学习(16)—— 类模板

眉间皱痕 提交于 2020-02-09 12:55:36
1.类模板语法 类模板作用: 建立一个通用类,类中的成员 数据类型可以不具体制定,用一个虚拟的类型来代表。 语法: template<typename T> 类 解释: template —— 声明创建模板 typename —— 表明其后面的符号是一种数据类型,可以用class代替 T —— 通用的数据类型,名称可以替换,通常为大写字母 #include<iostream> #include<string> using namespace std; //类模板 template<class NameType, class AgeType> class Person{ public: Person(NameType name, AgeType age){ this->m_name = name; this->m_age = age; } void showPerson(){ cout << "name: " << this->m_name << " age:" << this->m_age << endl; } NameType m_name; AgeType m_age; }; void test01(){ Person<string,int> p1("alice", 18); p1.showPerson(); } int main(){ test01(); return 0;

kotlin面向对象总结-数据类

柔情痞子 提交于 2020-02-07 19:56:58
kotlin通过data class创建数据类。 package com.example.kotlindemo.classsdemo data class PayDataBird(var weight: Double, var age: Int, var color: String) Kotlin转java public final class PayDataBird { private double weight; private int age; @NotNull private String color; public final double getWeight() { return this.weight; } public final void setWeight(double var1) { this.weight = var1; } public final int getAge() { return this.age; } public final void setAge(int var1) { this.age = var1; } @NotNull public final String getColor() { return this.color; } public final void setColor(@NotNull String var1) {

Java-8-Optional类

◇◆丶佛笑我妖孽 提交于 2020-02-06 13:08:46
Java-8-Optional类 java8新特性之Optional类 空指针异常是一个运行时异常,对于这一类异常,如果没有明确的处理策略,那么最佳实践在于让程序早点挂掉,但是很多场景下,不是开发人员没有具体的处理策略,而是根本没有意识到空指针异常的存在。当异常真的发生的时候,处理策略也很简单,在存在异常的地方添加一个if语句判定即可,但是这样的应对策略会让我们的程序出现越来越多的null判定,我们知道一个良好的程序设计,应该让代码中尽量少出现null关键字,而java8所提供的Optional类则在减少NullPointException的同时,也提升了代码的美观度。但首先我们需要明确的是,它并 不是对null关键字的一种替代,而是对于null判定提供了一种更加优雅的实现,从而避免NullPointException 在Java程序开发中使用 null 会带来理论和实际操作上的种种问题 它是错误之源。NullPointerException 是目前Java程序开发中最典型的异常。 它会使你的代码膨胀。它让你的代码充斥着深度嵌套的 null 检查,代码的可读性糟糕透顶。 它自身是毫无意义的。null 自身没有任何的语义,尤其是,它代表的是在静态类型语言中以一种错误的方式对缺失变量值的建模。 它破坏了Java的哲学。Java一直试图避免让程序员意识到指针的存在,唯一的例外是:

C++ 模板与泛型编程

跟風遠走 提交于 2020-02-06 05:27:24
《C++ Primer 4th》读书笔记 所谓泛型编程就是以独立于任何特定类型的方式编写代码。泛型编程与面向对象编程一样,都依赖于某种形式的多态性。 面向对象编程中的多态性在运行时应用于存在继承关系的类。我们能够编写使用这些类的代码,忽略基类与派生类之间类型上的差异。 在泛型编程中,我们所编写的类和函数能够多态地用于跨越编译时不相关的类型。一个类或一个函数可以用来操纵多种类型的对象。 面向对象编程所依赖的多态性称为运行时多态性,泛型编程所依赖的多态性称为编译时多态性或参数式多态性。 模板是泛型编程的基础。模板是创建类或函数的蓝图或公式。 函数模板 模板定义以关键字 template 开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以逗号分隔。模板形参表不能为空。 template <typename T> int compare(const T &v1, const T &v2) { if (v1 < v2) return -1; if (v2 < v1) return 1; return 0; } 模板形参可以是表示类型的类型形参,也可以是表示常量表达式的非类型形参。类型形参跟在关键字 class 或 typename 之后定义.在函数模板形参表中,关键字 typename 和 class 具有相同含义,可以互换使用

关于String的截取输出的一个使用。

冷暖自知 提交于 2020-01-18 17:17:19
这个呢,是我在写一个爬虫时遇到的问题,关于问题的描述是这样的,我有一个字符串,想得到其中的一段,即截取其中的一部分所用,方法如下: 使用substring( start , stop )方法,在W3中对于这个函数的解释链接:https://www.w3school.com.cn/js/jsref_substring.asp 要注意: substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。 怎们说呢,用代码解释比较简单: String str = "123456";//声明一个字符串备用 String jiequ1,jiequ2;//声明一个截取字符串 jiequ1 = str.substring(1, 2);//包括头,不包括尾,即应输出2 jiequ2 = str.substring(2, 5);//应输出345 System.out.println("原字符串:"+str); System.out.println("截取到的字符串1:"+jiequ1); System.out.println("截取到的字符串2:"+jiequ2);   输出如图示: 大概使用方法就是这样了。 来源: https://www.cnblogs.com/msdog/p/12209254.html

高级bash编程指南(三)

谁说我不能喝 提交于 2020-01-14 14:31:42
该章从第九章变量访问开始 一.内部变量 1.内建变量 $FUNCNAME,当前函数的名字 func() { echo "$FUNCNAME" #func } 2.$IFS内部字段分割符 当shell读取输入时,它给出来分割单词的一组字符,它通常是空格,制表符和换行符。 $* 所有的参数用环境变量$IFS的第一个字符分割开 $@则不是用$IFS中的字符分割变量。 3.$LINENO表示在脚本中该变量出现时的所在的行数 4.$SECONDS脚本已运行的秒数,sleep num ,程序停止num秒 5.$TMOUT,经错$TMOUT后,shell提示符会超时,这将使此shell退出登录 6.在使用$*时一定要用引号引起,否则在某一些情况下会出错   $!在后台运行的最后一个作业的PID   $_保存迁移个命令最后一个参数的变量值   $?一个命令,函数或脚本自身的退出码   $$脚本本身的PID 二.操作字符串 1.字符串长度   ${#string},expr length $string,expr "$string" : ‘.*’(单引号)   2.匹配字符串开头的字串的长度   expr match "$string" '$substring'     expr "$string" : '$substring'  #substring is Resular Expressions

[译]JavaScript中,{}+{}等于多少?

白昼怎懂夜的黑 提交于 2020-01-12 17:07:04
今天面试不小心掉进坑了,大公司特别喜欢考javascript,而且专门挑很tricky的case。 javascipt的==简直就是黑魔法,以前偷懒总是用,感觉也没有问题,可是准备面试就需要有寻根问底的精神。 原题问[]==false; ![]==false console输出什么。结果是都是true 当空数组作为判断条件时,相当于true。当空数组与布尔值直接比较时,相当于false。 [] == ![]; // true [ ] == true // false Since the left and right sides of the equality are two different types, JavaScript can't compare them directly. Hence, under the hood, JavaScript will convert them to compare. First, the right side of the equality will be cooereced to a number and number of true would be 1. After that, JavaScript implementation will try to convert [] by using toPrimitive (of

STL 常用方法

我是研究僧i 提交于 2020-01-11 08:43:27
1. 选择 C++ 刷算法的理由 1、C++ 速度快(C 不是更快吗,Java 太慢了) 2、C++ 有 STL(什么是 STL)——性能强大,使用方便的标准库 3、如何使用 STL 进行高效刷算法 4、好处:刷算法,学习成本低 5、如何从 C 到 C++(仅基础语法到刷算法程度) 俗话说:磨刀不误砍柴工,不会 C++ 仍然可以刷算法,但是效率相对很低。在 ACM 或各类程序算法竞赛中相比于 Java 代码的冗长,C 的繁琐,Python 的性能低下,C++ 以兼顾简洁和高效脱颖而出。 2.输入输出 C++ 保留了 C 的 scanf 和 printf,额外增加了 cin 和 cout。 Example: 2.1 C 程序中的输入输出 int a; scanf("%d", &a); printf("%d", a); 2.2 C++ 程序中的输入输出 int a; cin >> a; cout << a; 2.3 C++ 程序中的连续输入输出 int a, b, c; cin >> a >> b >> c; cout << a << b << c; 2.4 C++ 优雅地换行 cout << 1; cout << endl; cout << 2; cout << 3 << endl << endl; Notice: cin、cout 使用虽然很方便,但是比 scanf、printf

《C++ Primer Plus》第16章 string类和标准模板库 学习笔记

笑着哭i 提交于 2020-01-09 21:23:02
C++提供了一组功能强大的库,这些库提供了很多常见编程问题的解决方案以及简化其他问题的工具string类为将字符串作为对象来处理提供了一种方便的方法。string类提供了自动内存管理动能以及众多处理字符串的方法和函数。例如,这些方法和函数让您能够合并字符串、将一个字符串插入到另一个字符串中、反转字符串、在字符串中搜索字符或姊姊富川以及执行输入和输出操作。 诸如auto_ptr以及C++11新增的shared_ptr和unique_ptr等智能指针模板使得管理由new分配的内存更容易。如果使用这些智能指针(而不是常规指针)来保存new返回的地址,则不比在以后使用删除运算符。智能指针对象过期时,其析构函数将自动调用delete运算符。 STL是一个容器类模板、迭代器类模板、函数对象模板和算法函数模板的集合,它们的设计是一致的,都是基于泛型编程原则的。算法通过使用模板,从而独立于所存储的对象的类型;通过使用迭代器接口,从而独立于容器的类型。迭代器是广义指针。 STL使用术语“概念”來描述一组要求。例如,正向迭代器的概念包含这样的要求,即正向迭代器能 够被解除引用,以便读写,问时能够被递增。概念真正的实现方式被称为概念的“模型”例如,正向迭代器概念可以是常规指针或导航链表的对象。基于其他概念的概念叫作“改进”例如,双向迭代器是正向迭代器概念的改进。

709. To Lower Case - LeetCode

我是研究僧i 提交于 2020-01-08 03:54:46
Question 709. To Lower Case Sollution 题目大意:字符串大写转小写 思路: 直接调用Java API函数 字符串转char数组,遍历数组,判断如果大写就转小写 Java实现: public String toLowerCase(String str) { char[] arr = str.toCharArray(); for (int i = 0; i < arr.length; i++) { if (arr[i] >= 'A' && arr[i] <= 'Z') { arr[i] += 32; } } return String.valueOf(arr); } 来源: https://www.cnblogs.com/okokabcd/p/9513843.html