当前位置: 首页 > news >正文

网站网页怎么做笑话网站程序

网站网页怎么做,笑话网站程序,wordpress 主题域名授权,百度广告投放技巧目录 1.什么是STL 2.STL的版本 3.STL的六大组件 4.string类 4.1为什么学习string类#xff1f; 4.2string常见接口 4.2.1默认构造 ​编辑 4.2.2析构函数 Element access: 4.2.3 [] 4.2.4迭代器 ​编辑 auto 4.2.4.1 begin和end 4.2.4.2.regin和rend Capacity: 4.2.5…目录 1.什么是STL 2.STL的版本 3.STL的六大组件 4.string类 4.1为什么学习string类 4.2string常见接口 4.2.1默认构造 ​编辑 4.2.2析构函数 Element access: 4.2.3 [] 4.2.4迭代器 ​编辑 auto 4.2.4.1 begin和end 4.2.4.2.regin和rend Capacity: 4.2.5.3 size 4.2.6 lenth  4.2.7 cleart Modifiers: 4.2.7 apend 4.2.8  4.2.9 erase 4.2.10 replace String operations: 4.2.11 find 4.2.12 substr 4.2.13  find_first_of 4.2.14  find_ last_of 4.2.15 find_first_not_of 4.2.16 find_last_not_of 1.什么是STL STLstandarf template libaray-标准模板库是C标准库的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。 2.STL的版本 原始版本 Alexander Stepanov MengLee 在惠普实验室完成的原始版本本着开源精神他们声明允许任何人任意运用拷贝修改传播商业使用这些代码无需付费。唯一的条件就是也需要向原始版本一样做开源使用。HP版本--所有STL实现版本的始祖。 P.J.版本 由P.J.Plauger开发继承自HP版本被Windows Visual C采用不能公开或修改缺陷可读性比较低符号命名比较怪异。 RW版本 由Rouge Wage 公司开发继承自HP版本被C Builder 采用 不能公开或修改缺陷可读性一般 SGL版本 由Silicon Graphics Computer Systems Inc公司开发继承自HP版本。被GCC(Linux)采用可移植性较好可公开修改甚至贩卖从命名风格和编程风格上看阅读性非常高。 3.STL的六大组件 4.string类 4.1为什么学习string类 C语言中字符串是以\0结尾的一些字符的集合为了方便操作C标准库中提供了一些str系列的库函数但是这些库函数与字符串是分开的不太符合OOP的思想而且底层空间需要用户自己管理稍不留神可能还会越界访问。而且在常规工作中为了简单方便快捷基本都使用string类很少有人使用C库中的字符串操作函数 4.2string常见接口 4.2.1默认构造 实例 //无参构造//string();string s1;//带参构造string s2(111);//string(const char* s); //拷贝构造string s3(s2);//string(const string str);string s4(123, 2, 1);//string(const string str, size_t pos, size_t len npos);//复制str中从字符下标位置 pos 开始的len个 字符进行拷贝构造如果任一 str 太短或 len 为 string::npos则复制到str 的末尾。string s5(123,0 ,string:: npos);// string(const char* s, size_t n);string s6(123, 2);//从 s 指向的字符数组中复制前 n 个字符。//string(size_t n, char c);//用连续的n个c字符去初始化string s7(3, c);//template class InputIterator//string(InputIterator first, InputIterator last); 4.2.2析构函数 Element access: 4.2.3 [] 获取字符串的字符 利用[]来进行读写下标[]遍历 int main() { string s1(abcd);//写s1[0] *;//将下标为0的元素修改为1cout s1 endl;//读for (int i 0; i s1.size(); i){cout s1[i] ;}return 0; } []原型 class string {public: char operator[](size_t i){return _str[i];} private:char* _str;size_t _size;size_t _capacity; }; 4.2.4迭代器 在 STL 中迭代器Iterator用来访问和检查 STL 容器中元素的对象它的行为模式和指针类似但是它封装了一些有效性检查并且提供了统一的访问格式。他的底层是指针 迭代器遍历 int main() { string s1(abcd);string::iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}return 0; } auto 补充一个C小语法 auto可自动推导类型极大程度简化代码 const string s3(hello ward!);//string::const_iterator cits3.begin(); 可简写成 auto cit s3.begin(); auto声明方式 auto  变量名 auto  函数名 (形参列表) { //函数体 } auto的实例 int fun() {return 10; } int main() {int a10;auto b a;auto c a;auto d fun();auto e a;auto* f a;cout typeid(a).name() endl;cout typeid(b).name() endl;cout typeid(c).name() endl;cout typeid(d).name() endl;cout typeid(e).name() endl;cout typeid(f).name() endl;return 0; } 在早期C/C中auto的含义是使用auto修饰的变量是具有自动存储的局部变量后来这个不重要了C11中标准委员会被废为宝赋予了auto全新的含义即auto不再是一个存储类型指示符而是作为一个新的类型指示符来指示编译器auto声明的变量必须由编译器在编译时期推导而得用auto声明指针类型时用auto和auto*没有任何区别但用auto声明引用类型时必须加当在同一行声明多个变量时这些变量必须是相同的类型否则编译器会报错因为编译器实际只对第一个类型进行推导然后用推导出来的类型定义其他变量auto不能作为函数的参数可以做返回值但是谨慎使用aoto不能直接用来声明数组 范围for遍历 aoto自动推导字符赋值自动迭代自动判断结束底层上也是迭代器所有的容器都支持范围for因为所有的容器都支持迭代器 4.2.4.1 begin和end 1.begin 返回第一个字符的正向迭代器 int main() { string s1(abcd);cout* s1.begin();return 0; } 2. end 返回最后一个字符的正向迭代器 可配合起来正向遍历 int main() {string s1(abcdef);string::const_iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}return 0; } 4.2.4.2.regin和rend regin 返回最后一个的反向迭代器 rend 返回第一个字符的反向迭代器 配合起来可支持反向遍历 int main() {string s1(abcdef);string::const_reverse_iterator it s1.rbegin();while (it ! s1.rend()){cout *it ;it;}return 0; } Capacity: 4.2.5.3 size 返回字符串的长度不包括\0 int main() { string s1(abcd);cout s1.size();return 0; } 4.2.6 lenth  返回以字节为单位的长度不包括\0 int main() {string s1(abcdef);cout s1.length()endl;return 0; }4.2.7capacity l返回容量大小 4.2.7reserve 保留预留提前开空间避免扩容提高效率 int main() {string s1(abcdef);cout s1.capacity() endl;s1.reserve(100);cout s1.capacity()endl;//可以扩容100s1.reserve(50);cout s1.capacity() endl;//一般不会缩容return 0; } 4.2.7 cleart 清除数据一般不清除容量 int main() {string s1(abcdef);cout s1.capacity() endl;cout s1.size() endl;s1.clear();cout s1.capacity() endl;cout s1.size() endl;//一般不会缩容return 0; } Modifiers: 4.2.7 apend 字符串追加 int main() {string s1(abcdef);//string append(const string str);s1.append(yyy);cout s1 endl;// string append(const string str, size_t subpos, size_t sublen); //追加 str 子字符串的副本。子字符串是 str 中从字符位置 subpos 开始并跨越 sublen 字符的部分或者直到 str 的末尾如果任一 str 太短或 sublen 是 stringnpos。s1.append(aaaa, 2, 1);cout s1 endl;return 0; }4.2.8  字符串拼接尾插 int main() {string s1(abcdef);string s2(123);//string operator (const string str);s1 s2;s1 a; //string operator (char c);s1 aaa; //string operator (const char* s);return 0; }int main() {string s1(abcdef);string s2(123);//string insert(size_t pos, const string str);// 在pos之前插入strs1.insert(0, abc);//string insert(size_t pos, const string str, size_t subpos, size_t sublen);//在下标pos位置之前插入str下表中subpos到下标sublen位置的元素s2.insert(0, abcdd, 0, 4);cout s2 endl;//string insert(size_t pos, const char* s);//在pos位置之前插入s//string insert(size_t pos, const char* s, size_t n);//从在下标为pos的位置插入s的n个字符//string insert(size_t pos, size_t n, char c);//在pos位置之前插入n个c字符//void insert(iterator p, size_t n, char c);//在迭代器的位置之前插入n个字符c//iterator insert(iterator p, char c);//在迭代器的位置之前插入字符cs1.insert(s1.begin(), *);cout s1 endl;return 0; } 4.2.9 erase 头删 int main() {string s1(abcdef);string s2(123);//string erase(size_t pos 0, size_t len npos);//擦除字符串值中从字符位置 pos 开始并到 len 字符的部分不包括len如果内容太短或 len 为 stringnpos则擦除字符串值的末尾。s1.erase(0, 2);//iterator erase(iterator p);//擦除 p 指向的字符。s1.erase(s1.begin());//iterator erase(iterator first, iterator last); //擦除[firstlast] 范围内的字符序列s1.erase(s1.begin(), s2.end());cout s1 endl;return 0; }4.2.10 replace 替换 int main() {string s1(abcdef);string s2(123);//string replace(size_t pos, size_t len, const char* s);//string replace(size_t pos, size_t len, const string str);//把pos位置到len位置替换成str//string replace(iterator i1, iterator i2, const char* s);//string replace(iterator i1, iterator i2, const string str);//把i1到i2之间的迭代器换成str//string replace(size_t pos, size_t len, size_t n, char c);//string replace(size_t pos, size_t len, const char* s, size_t n);//把pos位置到len位置替换成str中的前n个//string replace(iterator i1, iterator i2, const char* s, size_t n);//把i1到i2之间的迭代器换成str中的前n个//string replace(iterator i1, iterator i2, size_t n, char c);//把i1到i2之间的迭代器换成n个字符c//string replace(iterator i1, iterator i2,//InputIterator first, InputIterator last);//将迭代器输入到范围内的初始位置和最终位置。使用的范围是 [firstlast它包括 first 和 last 之间的所有字符包括 first 指向的字符但不包括 last 指向的字符return 0; } String operations: 4.2.11 find 查找 返回第一个匹配的第一个字符的位置。 如果未找到匹配项该函数将返回 stringnpos。整型最大值 int main() {string s1(abcdef);string s2(123);//size_t find(const string str, size_t pos 0) const;s1.find(bce);// size_t find(const char* s, size_t pos 0) const;//在pos位置找ss1.find(a);// size_t find(const char* s, size_t pos, size_t n) const;//从pos位置找s的前n个cout s1.find(aaa, 1, 2);// size_t find(char c, size_t pos 0) const;//从pos位置开始搜索字符creturn 0; } 4.2.12 substr 获得对于位置以后的子串然后重新构成string类返回 int main() {string s1(abcdef);//tring substr(size_t pos 0, size_t len npos) const;//从pos位置开始的len个字符重新构建成string再返回s1.substr(3, 4);return 0; } 实例 int main() {string s(text.cpp);size_t pos s.rfind(.);string suffix s.substr(pos);cout suffix endl;;return 0; } 4.2.13  find_first_of 顺着找字符串中的字符找到返回第一个出现的下标 int main() {string s1(abcdef);//ze_t find_first_of(const string str, size_t pos 0) const;//ize_t find_first_of(const char* s, size_t pos 0) const;//ize_t find_first_of(char c, size_t pos 0) const;//在pos位置开始找str中的字符s1.find_first_of(abc);//ize_t find_first_of(const char* s, size_t pos, size_t n) const;//在pos位置找s的前n个return 0; } 4.2.14  find_ last_of 倒着找字符串中的字符找到返回第一个出现的下标 int main() {string s1(abcdef);//size_t find_last_of(const string str, size_t pos npos) const;// //size_t find_last_of(char c, size_t pos npos) const// size_t find_last_of(const char* s, size_t pos npos) const;//从最后一个位置向前找str中的字符s1.find_last_of(Abc,2,4);//size_t find_last_of(const char* s, size_t pos, size_t n) const;//从最后一个位置向前找str中的n个字符return 0; } 分割文件 void SplitFilename(const std::string str){std::cout Splitting: str endl;std::size_t found str.find_last_of( / \\);std::cout path: str.substr(0, found) endl;std::cout file: str.substr(found 1) endl;} int main() {string str1(windows\\winhelp.exe);string str2(/url/bin/man);SplitFilename(str1);cout endl;SplitFilename(str2);return 0; } 4.2.15 find_first_not_of 没找到就返回顺着找返回第一个不匹配的对应下标 int main() {string s1(abcdef);//size_t find_first_not_of(const string str, size_t pos 0) const;//size_t find_first_not_of(const char* s, size_t pos 0) const; // //size_t find_first_not_of(char c, size_t pos 0) const;//从第一个位置向前找str中的n个字符找到第一个不匹配的元素下标找不到就返回// //size_t find_first_not_of(const char* s, size_t pos, size_t n) const;//从第一个位置向后找中第一个不匹配的字符str中的前n个的字符return 0; }实例 int main() {//string str(Please, replace the vowels in this sentence by asterisks.);//除了abcdef以外全部替换成*std::size_t found str.find_first_not_of(abcdef);while (found ! std::string::npos){str[found] * ;found str.find_first_not_of(abcdef, found 1);}std::cout str;return 0; }4.2.16 find_last_not_of 倒着找找到第一个不匹配返回下标 int main() {//ize_t find_first_not_of(const string str, size_t pos 0) const;// size_t find_first_not_of(const char* s, size_t pos 0) const;//size_t find_first_not_of(char c, size_t pos 0) const;// 从最后一个位置向前找第一个不匹配str中的字符的下标//size_t find_first_not_of(const char* s, size_t pos, size_t n) const;//从最后一个位置向前找第一个不匹配str中的前n个字符的下标,找不到就返回return 0; }
http://www.dnsts.com.cn/news/15543.html

相关文章:

  • 保山网站建设报价智慧团建密码只能是8位吗
  • 地方门户网站的推广四川建设网官网登录入口
  • 网站设计方案做网站的高手
  • 网站设计包括什么软件企业网络设计方案预算
  • dedecms网站主页空白会展设计专业
  • p2p借贷网站建设com网站域名可以是汉字吗
  • 笔记本销售网站开发的背景wordpress网站自动伪原创
  • 搭建一个购物网站校园二手市场网站开发
  • 网站建设那个最好企业网站的基本内容和营销功能
  • 分类信息网站怎么建设银川网站设计联系电话
  • 网站开发的文献网站建设华企云商
  • 小说网站的阅读界面怎么做的wordpress焦点图
  • 小型电子商务网站网页设计网络搭建是什么意思
  • 建立网站赚钱网站做cdn
  • 重庆丰都建设局网站徐州网站制作费用
  • 商务网站模板免费下载中山网页网站设计模板
  • 在哪些软件上建设网站网站新款模板
  • canvas做的网站南京网站推广公司
  • 搞笑视频网站建设策划书qq轻聊版
  • 外国语学校网站建设方案网站运营这么做
  • 可以做女的游戏视频网站cms建站系统是什么
  • 海南海口网站建设logo设计网站哪个好一些
  • 创建网站的方案找个人做网站还是找企业做网站
  • 深圳建站公司专业公司企业品牌策划案例
  • 企业网站建设管理视频代做网站怎么进行域名备案
  • 网站索引量下降海南短视频搜索seo哪家实惠
  • 专业的扬州网站建设wordpress注入docker
  • 网站服务器用哪个好网页小游戏怎么下载
  • 自己做自己的私人网站网站建设合同印花税
  • 合肥浦发建设集团网站源码猫网站建设ym361