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

网站怎么建设商城sql 新建网站

网站怎么建设商城,sql 新建网站,怎么做跑腿网站,好多网站没排名了摘要#xff1a;标准库中的string类的常用函数 C语言中#xff0c;字符串是以\0结尾的一些字符的集合#xff0c;为了操作方便#xff0c;C标准库中提供了一些str系列的库函数#xff0c; 但是这些库函数与字符串是分离开的#xff0c;不太符合OOP(面向对象)的思想#…摘要标准库中的string类的常用函数 C语言中字符串是以\0结尾的一些字符的集合为了操作方便C标准库中提供了一些str系列的库函数 但是这些库函数与字符串是分离开的不太符合OOP(面向对象)的思想而且底层空间需要用户自己管理稍不留神可能还会越界访问。 在OJ中有关字符串的题目基本以string类的形式出现而且在常规工作中为了简单、方便、快捷基本 都使用string类很少有人去使用C库中的字符串操作函数。 string 类不属于 STL 【C】-7- STL简介属于标准库下面介绍 string类 中比较常用、重要的函数。string类的接口设计繁多需要时查一下文档即可。cplusplus.com/reference/string/string/ 1. Constructor 关于构造函数不多赘述参考文档可以很清楚的了解这些构造函数。→ https://cplusplus.com/reference/string/string/string/ 补充说明 npos 为 string类 中的静态成员变量类型为 无符号整型。static const size_t npos -1 -1表示为无符号整型的最大值1111 1111 1111 1111 1111 1111 1111 1111 → 4,294,967,295。 2. 遍历string_Element Access operator[] Get character of string (public member function) at Get character in string (public member function) back Access last character (public member function) front Access first character (public member function) 1operator[] 像普通数组一样以[下标]的方式访问string类对象中的成员是最常用、便捷的一种方式。同样的这种访问方式也支持修改 #includeiostream #includestringint main() {std::string s1(Hello!);for (int i 0; i s1.size(); i){std::cout s1[i] ;//访问}std::cout std::endl;for (int i 0; i s1.size(); i){std::cout s1[i] ;//修改}return 0; } 注意 operator[] 越界程序直接终止assert断言处理 2at at越界抛异常 #includeiostream #includestringint main() {std::string s1(Hello!);for (int i 0; i s1.size(); i){std::cout s1.at(i) ;}std::cout std::endl; return 0; } 3. Iterator_迭代器 迭代器是更通用、主流的遍历方式——不是所有的容器都适用operator[]譬如链表——空间按地址不连续。为了方便理解可以把迭代器看作指针虽然实际底层实现可能是指针也可能不是。 begin Return iterator to beginning (public member function) end Return iterator to end (public member function) rbegin Return reverse iterator to reverse beginning (public member function) rend Return reverse iterator to reverse end (public member function) cbegin Return const_iterator to beginning (public member function) cend Return const_iterator to end (public member function) crbegin Return const_reverse_iterator to reverse beginning (public member function) crend Return const_reverse_iterator to reverse end (public member function) #includeiostream #includestringint main() {std::string s2(Hello World!);std::string::iterator it s2.begin();while (it ! s2.end()){std::cout *it ;it;}std::cout std::endl;return 0; } 1reverse_iterator 2范围for #includeiostream #includestringint main() {for (auto e : s2){std::cout e ;}return 0; } 范围for 本质上就是迭代器编译器会在编译的时候替换成迭代器。 3const_iterator int main() {const std::string s3(RoundBottle);std::string::const_iterator c_it s3.cbegin();while (c_it ! s3.cend()){std::cout *c_it ;c_it;}std::cout std::endl;std::string::const_reverse_iterator cr_it s3.crbegin();while (cr_it ! s3.crend()){std::cout *cr_it ;cr_it;}std::cout std::endl;return 0; } 如上代码const 对象调用 std::string::const_iterator 和 std::string::const_reverse_iterator 。 ps.可以用 auto 自动识别类型——auto cr_it  s3.crbegin(); 4. Capacity size Return length of string (public member function) length Return length of string (public member function) max_size Return maximum size of string (public member function) resize Resize string (public member function) capacity Return size of allocated storage (public member function) reserve Request a change in capacity (public member function) clear Clear string (public member function) empty Test if string is empty (public member function) shrink_to_fit Shrink to fit (public member function) clear()一般只清理空间不释放空间size() and length()string 类对象结尾以 \0 为结束标志——为了兼容C语言 。size() and length() 都不把结尾的 \0 算在内先有 length 后有 size是为了和其他容器保持一致“size” 这种表达更具有通用性。功能一样都是返回 string类 的对象的长度不包括结尾的 \0 。 reserve提前预留空间因为频繁的扩容是有代价的提前预留空间可以提高效率一般不缩容。另外不同平台下实际实现方案有所不同譬如 vs编译器 下有一些对齐的规则最终开出来的空间会比 reserve 指定的空间大小要大一点g平台下一般是按指定的空间大小开空间。 resize改变 size 的大小。ps.如果指定的 size 大小过大改变 size 的大小会导致改变 capacity 的大小。 ​ 关于不同平台扩容的不同规则vs平台一般是1.5倍扩容g平台一般是2倍扩容。 5. Modifiers operator Append to string (public member function) append Append to string (public member function) push_back Append character to string (public member function) assign Assign content to string (public member function) insert Insert into string (public member function) erase Erase characters from string (public member function) replace Replace portion of string (public member function) swap Swap string values (public member function) pop_back Delete last character (public member function)​ operator常用推荐使用可以插入字符或字符串push_back插入字符append插入一串指定字符insert , erase , replace能不用就不用。因为挪动数据影响效率 使用示例  int main() {std::string s2(Hello,Round Bottle);s2 x;s2 llllll;s2 321;s2 !;std::cout s2;s2.push_back(7);std::cout s2;s2.append(aaaaaa);s2.append(3, 0);s2.append(alison, 2);std::cout s2;return 0; } Non-member function overloads  operator 全局函数尽量减少用代价很大 int main() {std::string s2(Hello,Round Bottle);std::string s3 s2 777;std::cout s3 std::endl;return 0; }关于Swap函数 ①std库中提供了 swap 函数模板3次深拷贝——1次拷贝构造两次赋值——效率低 ②害怕成本太高std库中又提供了现成的针对 string类对象的就是 Non-member function overloads 表格中所展示的 swap 函数 ③ string类中自己有 swap 成员函数就是 Modifiers 表格中所展示的 swap 函数 swap 成员函数使用示例  int main() {std::string s1(nothing);std::string s2(Hello,Round Bottle);std::cout s1: s1 std::endl;std::cout s2: s2 std::endl;s1.swap(s2);std::cout --------------swap--------------- std::endl;std::cout s1: s1 std::endl;std::cout s2: s2 std::endl;return 0; }综上针对交换 string类 的对象建议使用 string类自己的成员函数 swap 进行交换——效率更高。 6. String operations c_str Get C string equivalent (public member function)dataGet string data (public member function)get_allocatorGet allocator (public member function)copyCopy sequence of characters from string (public member function)findFind content in string (public member function)rfindFind last occurrence of content in string (public member function)find_first_ofFind character in string (public member function)find_last_ofFind character in string from the end (public member function)find_first_not_ofFind absence of character in string (public member function)find_last_not_ofFind non-matching character in string from the end (public member function)substrGenerate substring (public member function)compareCompare strings (public member function) c_str与C语言接口兼容。使用示例如下 int main() {std::string s1(nothing);printf(%s, s1.c_str());return 0; } 7. 设计string类的意义——编码 编码值和符号一一映射对应的关系 → 编码表 e.g. ASCII Unicode万国码 ⇨ UTF  UTF-8  ⇢ 兼容 ASCIILinux → UTF-8Windows —— 针对中国用户 → gbk ——参考了UTF-8UTF-16UTF-32 string stringString class (class) ⇨ UTF-8u16stringString of 16-bit characters (class)u32stringString of 32-bit characters (class)wstringWide string (class) 适应不同的编码为了更好的表示世界上的各种语言。 wchar_t2 byte宽字符⇨ wstringchar16_t16 bit → 2 byte UTF-16char32_t32 bit → 4 byte UTF-32 乱码(数)值 通过不同的编码表 得出了不同的符号——存储方式与解释方式不匹配。 GBKGBK字库_百度百科 (baidu.com) END
http://wiki.neutronadmin.com/news/54957/

相关文章:

  • 网站建设要注意哪些wordpress按分类搜索
  • 太原seo网站优化建设维护网站 未签订合同
  • 甘肃兰州网站建设音乐网站建设方案书模板
  • 网页设计与网站建设主要内容网络营销推广活动方案
  • 长春seo网站优化佛山高端网页制作
  • 吉林市做网站的科技html5网站后台页面设计
  • 网站显示备案号seo站外推广
  • ps制作博客网站界面外贸网站平台是不是很难做
  • 中建招聘网站wordpress如何加表情
  • 做外汇看新闻在什么网站看wordpress 摘要函数
  • 山东建设局网站电工网站 网页区别是什么
  • 汽车 营销 网站建设多语言网站思路
  • 专业的美容网站建设公关咨询公司
  • php网站建设 关键技术沈阳男科三甲医院排行榜
  • 一个人做的网站做什么好外贸型网站建设方法
  • 前端做网站难吗专业的定制型网站建设
  • 网站推广渠道制作简易网站
  • 中国工商银行官网网站wordpress 手机维修
  • 江苏省泰州市建设局官方网站邯郸网站制作外包
  • 网站建设需要什么流程图中国石油天然气第七建设公司网站
  • 佟年帮韩商言做网站是第几集遂昌建设局网站
  • 水泵行业网站怎么做盗版小说网站怎么赚钱
  • 晋江网站设计网站备案取消 后果
  • 如何做滴滴网站平台北京网站建设大概多少钱
  • 男女做微电影网站广州建设厅网站首页
  • 湖北营销型网站建设wordpress登陆重定向
  • 网站建设大小河南网站建设公司|河南网站建设价格费用
  • 律师微网站建设怎么写网站建设推广
  • 公司网站实名认证怎么做四川建设安全生产监督管理局网站
  • 网站的侧边栏怎么做有服务器如何做网站