记:应聘深信服科技 C++工程师(南京)
笔试
1.正则表达式。
以下是自己后续的学习。
/*
环形报数。 链表,正则表达式。
考试的时候不会,今天先来学习一下正则表达式。
*/
/*
2020.3.25 11:10
学习正则表达式。来自bili视频 https://www.bilibili.com/video/BV1Cs411a7Le?p=12
*/#include <regex>
#include <iostream>
using namespace std;//int main() {// string str;
// while (true) {// cin >> str;
// //regex e("abc"); //没有任何的特殊的匹配,仅仅是匹配"abc"
// //regex e("abc."); //.表示任何字符,但不可以是空格符或是换行符。。
// //如果要求,出现在str的前面,则需要在e前面加上^ 如果出现在后面,则需要在e的后面加上$
// //例如 "^abc."则表示e需要出现在str的前面,才算是匹配成功。
// //regex e("abc.$"); //.表示任何字符,但不可以是空格符或是换行符。。
// //regex e("abc", regex_constants::icase); //后面的参数的意思是忽略大小写。可以匹配。ABC abc ABc .....
// //regex e("abc?"); //? 的作用是前面的c字符可以出现 0次或1次 。
// //regex e("abc*"); //*的作用是前面的c字符可以出现 0次或多次。
// //regex e("abc+"); //+的作用是前面的c字符出现 1次或多次。 与*相比,+限制了至少要出现1次。
// //regex e("ab[cd]"); //[]的意思是里面的字符任意出现一个。
// //regex e("ab[^cd]"); //^的作用是不在[]里面的字符。在这里就是不是c或d的一个字符。
// //但是这里只能出现一次。需要出现多次,就需要使用前面的*或+
// //regex e("ab[cd]*"); //这样就可以出现多次。
// //有时还需要它出现指定的次数。
// //regex e("ab[cd]{3,}"); //出现的次数在3次以上。
// //regex e("ab[cd]{3,5}"); //出现的次数在3-5次。
// //regex e("abc|fgde"); //|表示或。就是匹配abc 或者是fgde
// //regex e("(abc)de+\\1"); //这个可以匹配abcdeabc 那个+是起连接作用的。
// //这个东西吧,可以少些一点。。暂时不知道有啥用。。
// //下面这个是匹配一个人的邮箱的。感觉很实用。
// //regex e("[[:w:]]+@[[:w:]]+\.com"); //[[:w:]]可以表示 数字 字母 和下划线。
// //regex e("abc.+"); //这里的+表示.出现一次或多次。可以匹配abcd abcdefefefe abcfjk等。
// //如果我们想匹配+呢?
// //regex e("abc.+",regex_constants::grep); //这样就可以匹配abcr+ abcd+等。
// //bool match = regex_match(str, e);
// //bool sub_match = regex_search(str, e); //这里的这个函数只要求部分的子串和e匹配就可以了。 e出现在str的前中后都可以。
// //如果要求,出现在str的前面,则需要在e前面加上^ 如果出现在后面,则需要在e的后面加上$
// //例如 "^abc."则表示e需要出现在str的前面,才算是匹配成功。
// //cout << (match ? "matched" : "not matched") << endl;
// }
// return 0;
//}//int main() {// string str;
// while (true) {// cin >> str;
// smatch m; //可以匹配出中间的那串邮箱的代码。
// regex e("([[:w:]]+)@([[:w:]]+)\.com");
// bool found = regex_search(str, m, e);
// cout << "m.size()= "<<m.size()<<endl;
// for (int i = 0; i < m.size(); i++) {// cout << "m[" << i<<"]"<<m[i]<<endl;
// }
// //m[0]是一整串字符串。
// //m[1]之后的是部分的。 例如输入是www@cwr.com 那么m[0]是整个字符串。m[1]是www m[2]是cwr
// cout << "邮箱的前缀" << m.prefix().str() << endl; //这两个东西一个是前缀,一个是后缀。
// cout << "邮箱的后缀" << m.suffix().str() << endl; //这个东西的作用是记录除了邮箱之外的前后文。
// //例如,如果输入是<email>wee@ed.com<end> 那么前缀是<email>,后缀是<end>。
// }
// return 0;
//}//可以说这个方法只适合很正常的 xxxx@xxx.com邮箱。不是很有通用性。。。
//我来设计一个有通用性的邮箱检测。
int main() {string str;while (true) {cin >> str;//regex e("^.+\[@\].+[\.com|\.edu\.cn]$"); //这么写倒是确实容易。。。//但是已经几乎没有任何的检查了。。。string pattern( "(\\w)+((-)*(\\w)*)*@(\\w)+((\\.(\\w)*)*)" );regex e(pattern);bool match = regex_match(str, e);cout << (match ? "matched" : "not matched") << endl;}return 0;
}//接下来是关于regex的两个迭代子。
//regex_iterator regex_token_iterator
// 大家看这个视频 https://www.bilibili.com/video/BV1Cs411a7Le?p=14
//我的脑容量今天接受不了了。//三个推荐的网站。
//https://www.runoob.com/regexp/regexp-intro.html 菜鸟教程的。
//http://blog.guoyb.com/2016/09/10/cpp11-9/
2.STL中set的find()函数。
1.set是一个内部自动递增排序且不重复的容器。
2.定义set数组。set<int> a[100]
一个数组,数组里面的每个元素都是set<int>
3.set容器内元素的访问只能使用迭代器,例如:set<int>::iterator it;
这样就得到了迭代器it,并且只能通过 ∗ i t *it ∗it来访问set里面的元素。(由于除开vector和string之外的STL容器都不支持 ∗ ( i t + 1 ) *(it+1) ∗(it+1)的访问方式。)
set<int> it;
for(set<int>::iterator it=st.begin();it!=st.end();it++){print("%d",*it);
}
4.set的find(value)函数返回set中对应值为value的迭代器,时间复杂度为O(log N),N为set内的元素个数。
set<int>::iterator it=st.find(2); //在st中查找2,返回其迭代器。
3.C++中string的find()函数。
str.find(str2) //当str2是str的子串时,返回其在str中第一次出现的位置;如果不是,返回string::npos.
str.find(str2,pos) //从str的pos号位置开始匹配str2,返回值与上相同。
//时间复杂度是O(nm),n和m分别是str和str2的长度。
4.关于C++的迭代器。
迭代器的出现是为了访问不同类型容器的方便。
(截图来自:bili一up主)
这是迭代器的分类:
容器会根据内部保存数据的类型,尽可能提供功能最多的迭代器。如string容器使用的是随机访问迭代器。
凉了。
记:应聘深信服科技 C++工程师(南京)相关推荐
- 「GoTeam 招聘时间」深信服科技 Go 开发工程师(成都)
本期招聘企业--深信服科技 公司简介 深信服科技股份有限公司是一家专注于企业级网络安全.云计算.IT基础设施与物联网的产品和服务供应商,拥有深信服智安全.信服云和深信服新IT三大业务品牌,与子公司 ...
- 找工作之深信服科技笔试
下午五点多刚从湖南大学回来,下午在那边参加了深信服科技的笔试,又被打击了,估计连面试的机会都没了. 由于昨晚恶补了一下深信服往年的笔试题,现在还昏昏欲睡呢,唉!像我这样的半路出家的(我的专业是通信工程 ...
- 深信服科技校园大使面试
上学期投了深信服科技的前端实习,但一直没有了消息.这学期深信服的HR发了一封邮件说要招校园大使,哈哈,为啥投个简历试试呢(o . o).投了简历之后,HR小姐姐发短信说后天上午9:30去深信服公司进行 ...
- 面试/深信服科技测试实习电话面试
在这个尴尬的时间段(毕业前)找实习,只能海投了 海投的情况下投了深信服,首先简历过了初筛,万分感谢 说下电话面试的内容吧.时间不长 15min左右 来电话的是个男的,不是HR,应该是技术人员,具体的不 ...
- 深信服科技 数据防泄漏DLP解决方案
组织面临的信息安全挑战: 随着业务转向数据化,如何保证重要的数据和信息不被泄露已经成了企业最关键的安全保卫工作之一,而相关的行业法律法规,也越来越重视要求对相关企业实现防止数据泄密.国外比较著名的比如 ...
- 深圳深信服科技07年校园招聘笔试题目
发信人: happyhippy (CS03.Silent Void), 信区: jobservice 标 题: 深圳深信服科技07年校园招聘笔试题目 发信站: 郁金香BBS站 (2006年11月 ...
- 深信服技术支持工程师(安全、云计算方向)面试题目
深信服的技术支持面试确实要比其他厂商的难得很多,我实习的时候也有非常多的985/211 的本科生和研究生,最开始将近2000个人,到最后才留下几十个,竞争是异常惨烈(秋招春招也肯定激烈)毕竟给的薪资比 ...
- 深信服安全运营工程师一面经验+二面经验
深信服一面安全运营经验: 面试官人和蔼,自我介绍,问了实习经历,在帆软干什么,青藤云干什么,给我一个站,我会做什么,之后着重问了在青藤云万相的问题,万相的特点,好的地方,不好的地方. 其他的问了网络交 ...
- 深信服科技公司2008校园招聘笔试题
1 变量和值的存储位置(堆/栈/代码段/数据段等)? 2 sizeof struct { short a; long b; char c; }d; sizeof(d)? 为什么在不同的平台 ...
最新文章
- [源码和文档分享]基于java 的仿QQ聊天工具
- 如何在Flexbox中垂直对齐文本?
- android关闭触摸声音,如何在Android中以编程方式禁用触摸时的振动和声音?
- 青少年蓝桥杯_2020_steam考试_中级组_第三题
- git ssh拉取代码_win10下git初始安装及配置工作
- 软件工程 第一次作业
- 今年7月,一起来看谷歌如何测试移动应用!
- FISCO BCOS 最大tps 每秒出块个数 tx_count_limit 区块容量 控制台设置参数 区块大小
- 谷歌浏览器截图_【插件推荐】一键滚动截图整个网页,支持二次编辑的免费工具...
- 未来的人工智能和 AR/VR 会从哪些方面影响教育?有什么机会?
- 微信公众平台开发文档
- docker 配置远程deamon
- cocos2d-js飞机项目:飞机爆炸效果
- python列表插入_python列表插入append(), extend(), insert()用法详解
- 关于2022年10月谷歌浏览器无法使用翻译功能的解决办法
- 作为技术负责人,如何从0搭建公司后端技术栈
- 练习之彩票三 添加号码相关代码
- 【计算机网络】应用层 : FTP 文件传输协议 ( FTP 客户端 和 服务器 | FTP 工作原理 | FTP 传输模式 )
- 数学建模--转移矩阵
- 转转和闲鱼哪个好,哪个比较好卖东西?