split

C++ 使用STL string 实现的split,trim,replace

戏子无情 提交于 2020-02-24 18:13:12
实现string 的去除两边空格,按指定字符截取,替换 #include <iostream> #include <vector> using namespace std; namespace strtool { string trim(const string& str) { string : :size_type pos = str.find_first_not_of(' ') ; if (pos == string : :npos) { return str ; } string::size_type pos2 = str.find_last_not_of(' '); if (pos2 != string::npos) { return str.substr(pos, pos2 - pos + 1); } return str.substr(pos); } int split(const string& str, vector<string>& ret_, string sep = ",") { if (str.empty()) { return 0; } string tmp; string::size_type pos_begin = str.find_first_not_of(sep); string::size_type comma_pos = 0; while

Tcp网络通讯详解

白昼怎懂夜的黑 提交于 2020-02-23 03:35:03
Tcp通讯 一款网络游戏分为客户端和服务端两个部分, 客户端程序运行在用户的电脑或手机上,服务端程序运行在游戏运营商的服务器上。多个客户端通过网络与服务端通信。TCP 连接指的是一种游戏中常用的网络通信协议, 与之对应的还有UDP 协议、KCP 协议、HTTP 协议等。本片文章只讨论Tcp通讯。 先来认识Socket 网络上的两个程序通过一个双向的通信连接实现数据交换, 这个连接的一端称为一个Socket。一个Socket包含了进行网络通信必需的五种信息:连接使用的协议、本地主机的IP地址、本地的协议端口、远程主机的IP地址和远程协议端口,如果把Socket理解成一台手机, 那么本地主机IP地址和端口相当于自己的手机号码, 远程主机IP地址和端门相当于对方的号码。至少需要两台手机才能打电话, 同样地, 至少需要两个Socket 才能进行网络通信。 理解IP地址和端口 IP地址 网络上的计算机都是通过IP地址识别的, 应用程序通过通信端口彼此通信。通俗地讲, 可以理解为每一个IP地址对应于一台计算机(实际上一台计算机可以有多个IP地址,此处仅作方便理解的解释)。 在Wmdows命令提示符中输入ipconfig, 便能够查看本机的IP地址,本地机进程间通信时Ip可使用:127.0.0.1。至于ipconfig查询出的ip与127.0.0.1之间的区别,可以自己百度 端口 “端口”

WITH在数据开发中的奇技淫巧

青春壹個敷衍的年華 提交于 2020-02-22 23:37:26
絮絮叨叨 笔者常见的数据开发中,发现如果脚本需要产生中间表,或者说想要提升脚本性能,把这段中间表逻辑变为子查询,在人肉堆SQL生涯中,不外乎两种办法: CREATE TABLE tmp.tmpxxxxx AS 优点:可以落物理表,验数时可追溯源头; 缺点:多一次落盘操作,讲白了说多IO,造成大量磁盘和网络开销 CACHE TABLE tmpxxxxx AS 优点:中间数据广播到每个节点,加快下次调用中间表读取速度 缺点:中间数据不可查,如果下游计算只调用一次,cache操作多一个stage浪费计算资源 讲重点-WITH是什么? WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分,作为提供数据的部分。 对于UNION ALL,使用WITH AS定义了一个UNION ALL语句,当该片断被调用2次以上,优化器会自动将该WITH AS短语所获取的数据放入一个Temp表中。而提示meterialize则是强制将WITH AS短语的数据放入一个全局临时表中。很多查询通过该方式都可以提高速度 WITH有什么用? 提供一个子查询,供整个SQL调用,同时便于整个脚本维护 WITH 使用场景及用法 WTITH用法 WITH a AS(), b AS

asp采集程序类

微笑、不失礼 提交于 2020-02-22 16:37:06
'================================================== '函数名:GetHttpPage '作 用:获取网页源码 '参 数:HttpUrl ——网页地址 '================================================== Function GetHttpPage(HttpUrl) If IsNull(HttpUrl)=True Or Len(HttpUrl)<18 Or HttpUrl="$False$" Then GetHttpPage="$False$" Exit Function End If Dim Http Set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",HttpUrl,False Http.Send() If Http.Readystate<>4 then Set Http=Nothing GetHttpPage="$False$" Exit function End if GetHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") Set Http=Nothing If Err.number<>0 then Err.Clear End If End Function

FHQ treap板子

。_饼干妹妹 提交于 2020-02-22 12:43:27
感觉这个玩意就是拆来拆去,所以没啥可学习的 粘一下两个题的代码吧 LGOJ 普通平衡树 #include <bits/stdc++.h> using namespace std; #define int long long namespace yspm { inline int read() { int res = 0, f = 1; char k; while (!isdigit(k = getchar())) if (k == '-') f = -1; while (isdigit(k)) res = res * 10 + k - '0', k = getchar(); return res * f; } const int N = 1e6 + 10, inf = 1e15 + 10; int base = 12344, tot, rt; int val[N], ls[N], rs[N], sz[N], rk[N]; inline int random() { return (base *= 102394) %= 239402, base; } inline int add(int valn) { sz[++tot] = 1; ls[tot] = rs[tot] = 0; val[tot] = valn; rk[tot] = random(); return tot; }

js计算日期之差

不问归期 提交于 2020-02-22 12:11:45
<script type="text/javascript"> function btnCount_Click(){ var myDate = new Date(); var year=myDate.getFullYear(); var month= myDate.getMonth(); var day= myDate.getDate(); var t1 = year+"-"+(month+1)+"-"+day; var t2 = document.getElementById("Writetime").value; var istime=CheckDate(t2,t1); if (!istime){ alert("输入的格式错误,请重新输入!"); } else{ var isbig=dateCompare(t1,t2); if(isbig){ alert("输入的时间不能大于当前时间"); } else{ alert("当前时间"+t1+"/n输入时间:"+t2+"/n相差"+DateDiff(t1, t2)+"天") } } } //判断时间是否大于当前时间函数 function dateCompare(startdate,enddate) { var arr=startdate.split("-"); var starttime=new Date(arr[0],arr[1]

Hbase的region合并与拆分

安稳与你 提交于 2020-02-18 03:32:26
1、region 拆分机制 region中存储的是大量的rowkey数据 ,当region中的数据条数过多的时候,直接影响查询效率.当region过大的时候.hbase会拆分region , 这也是Hbase的一个优点 . HBase的region split策略一共有以下几种: 1、 ConstantSizeRegionSplitPolicy 0.94版本前默认切分策略 当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 但是在生产线上这种切分策略却有相当大的弊端:切分策略对于大表和小表没有明显的区分。阈值(hbase.hregion.max.filesize)设置较大对大表比较友好,但是小表就有可能不会触发分裂,极端情况下可能就1个,这对业务来说并不是什么好事。如果设置较小则对小表友好,但一个大表就会在整个集群产生大量的region,这对于集群的管理、资源使用、failover来说都不是一件好事。 2、 IncreasingToUpperBoundRegionSplitPolicy 0.94版本~2.0版本默认切分策略 切分策略稍微有点复杂,总体看和ConstantSizeRegionSplitPolicy思路相同,一个region大小大于设置阈值就会触发切分

SQLServer 简单数据拆分

夙愿已清 提交于 2020-02-17 07:24:46
-1. 旧的解决方法(sql server 2000) create table tb(id int,value varchar(30)) insert into tb values(1,'aa,bb') insert into tb values(2,'aaa,bbb,ccc') go --方法1.使用临时表完成 SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b SELECT A.id, value = SUBSTRING(A.[value], B.id, CHARINDEX(',', A.[value] + ',', B.id) - B.id) FROM tb A, # B WHERE SUBSTRING(',' + A.[value], B.id, 1) = ',' DROP TABLE # --方法2.如果数据量小,可不使用临时表 select a.id , value = substring(a.value , b.number , charindex(',' , a.value + ',' , b.number) - b.number) from tb a join master..spt_values b on b.type='p' and b.number

Can't split a text file based on separator

五迷三道 提交于 2020-02-16 06:52:33
问题 I'm running Ubuntu 18.04 LTS. I have a text file named "group_keys", which contains a number of public keys that I'd like to split based on the delimiter -----BEGIN PUBLIC KEY----- and then output each key individually and sequentially. For example, if there are three keys, then the output would be three files with names like "person_1_key", "person_2_key", and "person_3_key". The file looks like this: I'm having difficulty using split and csplit to do this. The commands I'm inputting aren't

Can't split a text file based on separator

坚强是说给别人听的谎言 提交于 2020-02-16 06:52:09
问题 I'm running Ubuntu 18.04 LTS. I have a text file named "group_keys", which contains a number of public keys that I'd like to split based on the delimiter -----BEGIN PUBLIC KEY----- and then output each key individually and sequentially. For example, if there are three keys, then the output would be three files with names like "person_1_key", "person_2_key", and "person_3_key". The file looks like this: I'm having difficulty using split and csplit to do this. The commands I'm inputting aren't