怎么做网站广告代理商国外有哪些优秀的网站

news/2025/10/2 2:21:37/文章来源:
怎么做网站广告代理商,国外有哪些优秀的网站,淘宝网站的建设目的是什么意思,网站建设系统chi系统一#xff1a;Cstring类的由来 在C语言中#xff0c;字符串是以\0结尾的一些字符的集合#xff0c;为了操作方便#xff0c;C标准库中提供了一些str系列的库函数#xff0c;但是这些库函数与字符串是分离开的#xff0c;不太符合OOP的思想#xff0c;而且底层空间需要用…一Cstring类的由来 在C语言中字符串是以\0结尾的一些字符的集合为了操作方便C标准库中提供了一些str系列的库函数但是这些库函数与字符串是分离开的不太符合OOP的思想而且底层空间需要用户自己管理稍不留神可能还会越界访问。 C中对于string的定义为typedef basic_string string; 也就是说C中的string类是一个泛型类由模板而实例化的一个标准类本质上不是一个标准数据类型。 至于为什么不直接用String标准数据类型而用类是因为编码 每个国家的语言不同 比如说英语使用26个英文字母基本就能表述所有的单词 但是对于中文的字符呢是不是就要用其他编码方式啊比如说utf-8 补充 string是表示字符串的字符串类该类的接口与常规容器的接口基本相同再添加了一些专门用来操作string的常规操作。string在底层实际是basic_string模板类的别名typedef basic_stringchar, char_traits, allocator string;不能操作多字节或者变长字符的序列。在使用string类时必须包含#include头文件以及using namespace std 二.string类常用接口 1. string类对象的常见构造 (constructor)函数名称功能说明string() 重点构造空的string类对象即空字符串string(const char* s) 重点用C-string来构造string类对象string(size_t n, char c)string类对象中包含n个字符cstring(const strings) 重点拷贝构造函数 代码演示 void test_string1() {string s1; //构造空string对象string s2(hello); //使用C-string字符串构造string对象s2string s3(10, x); //使用十个x字符构造string对象s3string s4(s2); //拷贝构造 } 2. string类对象的容量操作 函数名称功能说明size重点返回字符串有效字符长度length返回字符串有效字符长度capacity返回空间总大小empty 重点检测字符串释放为空串是返回true否则返回falseclear 重点清空有效字符reserve 重点为字符串预留空间resize 重点将有效字符的个数该成n个多出的空间用字符c填充 注意 size() 与 length() 方法底层实现原理完全相同引入size()的原因是为了与其他容器的接口保持一致一般情况下基本都是用size()。 clear()只是将string中有效字符清空不改变底层空间大小resize(size_t n) 与 resize(size_t n, char c) 都是将字符串中有效字符个数改变到n个不同的是当字符个数增多时resize(n)用0来填充多出的元素空间resize(size_t n, char c)用字符c来填充多出的元素空间。注意resize在改变元素个数时如果是将元素个数增多可能会改变底层容量的大小如果是将元素个数减少底层空间总大小不变。reserve(size_t res_arg0)为string预留空间不改变有效元素个数当reserve的参数小于string的底层空间总大小时reserver不会改变容量大小。 补充 resize与reverse是为了在已知数据大小的情况下避免多次扩容减小开销 代码演示 void test_string2() {string s1(hello); //size与length都为 5cout s1.size() endl;cout s1.length() endl;cout s1.capacity() endl;//clear仅会改变有效字符个数size会被置为0不会改变容量大小//capacity为字符串的容量会自行扩容s1.clear();cout s1.size() endl; cout s1.capacity() endl;//将字符串有效个数变为10个多出来的用x赋值,若有效个数超过容量大小,capacity还会扩容//此时字符窜内容为“xxxxxxxxxx”s1.resize(10, x);cout s1.size() endl;cout s1 endl;//将capacity改变为128//注意编译器不一定会正好将capacity置为128这得看编译器的扩容机制s1.reserve(128);cout s1.capacity() endl; } 3. string类对象的访问及遍历操作 函数名称功能说明operator[ ] 返回pos位置的字符const string类对象调用begin endbegin获取一个字符的迭代器 end获取最后一个字符下一个位置的迭代器rbegin rendbegin获取一个字符的迭代器 end获取最后一个字符下一个位置的迭代器范围forC11支持更简洁的范围for的新遍历方式 void test_string3() {string s1(hello world!);// 3种遍历方式// 需要注意的以下三种方式除了遍历string对象还可以遍历是修改string中的字符// 另外以下三种方式对于string而言第一种使用最多//第一种operator[]for (size_t i 0; i s1.size(); i){cout s1[i] ;}cout endl;//第二种正向迭代器string::iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}cout endl;//反向迭代器// string::reverse_iterator rit s.rbegin();// C11之后直接使用auto定义迭代器让编译器推到迭代器的类型//反向打印auto rit s1.rbegin();while (rit ! s1.rend()){cout *rit ;rit;}cout endl;//第三种范围forfor (auto s : s1){cout s ;}cout endl; } 4. string类对象的修改操作                                                                                   函数名称功能说明push_back在字符串后尾插字符cappend在字符串后追加一个字符串operator (重点) 在字符串后追加字符串str c_str(重点)返回C格式字符串find npos(重点)从字符串pos位置开始往后找字符c返回该字符在字符串中的位置rfind从字符串pos位置开始往前找字符c返回该字符在字符串中的位置substr在str中从pos位置开始截取n个字符然后将其返回insert(size_t pos,const string str)在pos位置后插入str对象的字符串insert(size_t pos,const char* str)在pos位置后插入C类型的字符串insert(size_t pos,char ch)在pos位置后插入字符cherase(size_t pos,size_t lennpos)删除pos位置后len个字符若len为缺省则删除pos位置后的所有字符 void TestString4() {string str;str.push_back( ); // 在str后插入空格str.append(hello); // 在str后追加一个字符hellostr b; // 在str后追加一个字符bstr it; // 在str后追加一个字符串itcout str endl;cout str.c_str() endl; // 以C语言的方式打印字符串// 获取file的后缀string file1(string.cpp);size_t pos file.rfind(.);string suffix(file.substr(pos, file.size() - pos));cout suffix endl;// npos是string里面的一个静态成员变量// static const size_t npos -1;// 取出url中的域名string url(http://www.cplusplus.com/reference/string/string/find/);cout url endl;size_t start url.find(://);if (start string::npos){cout invalid url endl;return;}start 3;size_t finish url.find(/, start);string address url.substr(start, finish - start);cout address endl;// 删除url的协议前缀pos url.find(://);url.erase(0, pos 3);cout url endl; } }注意 在string尾部追加字符时s.push_back(c) / s.append(1, c) / s c三种的实现方式差不多一般情况下string类的操作用的比较多操作不仅可以连接单个字符还可以连接字符串。对string操作时如果能够大概预估到放多少字符可以先通过reserve把空间预留好这样可以减少多次扩容带来的开销 5. string类非成员函数 函数功能说明operator尽量少用因为传值返回导致深拷贝效率低operator 重点输入运算符重载operator 重点输出运算符重载getline 重点获取一行字符串relational operators重点大小比较 三模拟实现string类及其常用接口 namespace zyq {class string{public:typedef char* iterator;typedef const char* const_iterator;//构造函数string(){_str new char[1];_size 0;_capacity 0;_str[0] \0;}string(const char* str):_size(strlen(str)), _capacity(strlen(str)), _str(new char[strlen(str) 1]){strcpy(_str, str);}//析构函数~string(){delete[] _str;_size 0;_capacity 0;}//拷贝构造//旧版本拷贝构造/*string(const string s){_str new char[s._capacity 1];strcpy(_str, s._str);_size s._size;_capacity s._capacity;}*///新版本拷贝构造string(const string s){string tmp(s._str);swap(tmp);}size_t size()const{return _size;}size_t capacity()const{return _capacity;}//遍历char* c_str(){return _str;}char operator[](size_t pos){assert(pos _size);return _str[pos];}const char operator[](size_t pos) const{assert(pos _size);return _str[pos];}iterator begin(){return _str;}iterator end(){return _str _size;}const_iterator begin() const{return _str;}const_iterator end() const{return _str _size;}//修改void reserve(size_t n){if (n _capacity){char* tmp new char[n 1];strcpy(tmp, _str);delete[] _str;_str tmp;_capacity n;}}void push_back(char c){if (_size _capacity){size_t newcapacity _capacity 0 ? 4 : 2 * _capacity;reserve(newcapacity);}_str[_size] c;_size;_str[_size] \0;}void append(const char* str){size_t len strlen(str);if (_size len _capacity){reserve(_capacity len);}strcpy(_str _size, str);_size len;}string operator(char ch){push_back(ch);return *this;}string operator(const char* str){append(str);return *this;}void insert(size_t pos, char ch){assert(pos _size);if (_size _capacity){size_t newcapacity _capacity 0 ? 4 : 2 * _capacity;reserve(newcapacity);}size_t end _size 1;while (end pos){_str[end] _str[end - 1];end--;}_str[pos] ch;_size;}void insert(size_t pos, const char* str){assert(pos _size);size_t len strlen(str);if (_size len _capacity){reserve(_size len);}size_t end _size len;while (end pos len){_str[end] _str[end - len];--end;}strncpy(_str pos, str, len);_size len;}void erase(size_t pos, size_t len npos){assert(pos _size);//len_size-1 这样写可以防止溢出if (len npos || len _size - pos){_str[pos] \0;_size pos;}else{strcpy(_str pos, _str pos len);_size - len;}}void resize(size_t n, char c \0){if (n _capacity){reserve(n);for (size_t i _size; i n; i){_str[i] c;}_str[n] \0;_size n;}else{_size n;_str[n] \0;}}void clear(){_size 0;_str[0] \0;}void swap(string s){std::swap(_size, s._size);std::swap(_capacity, s._capacity);std::swap(_str, s._str);}size_t find(char ch,size_t pos0) const{assert(pos _size);for (size_t i pos; i _size; i){if (_str[i] ch)return i;}return npos;}size_t find(const char* str, size_t pos 0) const{assert(pos _size);char* ret strstr(_str, str);if (ret){return ret - _str;}return npos;}string operator(const string s){string tmp(s._str);swap(tmp);return *this;}bool operator(const string s) const{return strcmp(_str, s._str) 0;}bool operator(const string s) const{return strcmp(_str, s._str) 0;}bool operator(const string s) const{return *thiss||*thiss;}bool operator(const string s) const{return !(*thiss);}bool operator(const string s) const{return !(*thiss);}private:char* _str;size_t _size;size_t _capacity; public:static const size_t npos; };const size_t string::npos -1;void swap(string s1, string s2) {s1.swap(s2); }ostream operator(ostream out, const string s) {for (auto ch : s){out ch;}return out; }istream operator(istream in, string s) {s.clear();char ch;ch in.get();char ret[128];int i 0;while (ch ! ch ! \n){ret[i] ch;if (i 127){ret[127] \0;s ret;i 0;}ch in.get();}if (i 0){ret[i] \0;s ret;}return in; }istream getline(istream in, string s) {s.clear();char ch;ch in.get();char ret[128];int i 0;while ( ch ! \n){ret[i] ch;if (i 127){ret[127] \0;s ret;i 0;}ch in.get();}if (i 0){ret[i] \0;s ret;}return in; }}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vs2013 网站建设wordpress 去掉发布者

目录 1. 思路(图解)2. 代码 题目链接:leetcode 88. 合并两个有序数组 题目描述: 1. 思路(图解) 思路一:(不满足题目要求) 1. 创建一个大小为nums1和nums2长度之和的…

AI元人文:价值原语构想——迈向动态博弈的价值生态

AI元人文:价值原语构想——迈向动态博弈的价值生态 引言:从“价值对齐”到“价值共生” 在人工智能发展的狂飙突进中,我们正面临一个根本性的悖论:我们试图赋予机器超越人类的智能,却期望其价值体系像一台精密的钟…

常州网站外包网络游戏新规

外连接就是允许不满足条件的字段查询出来转载于:https://www.cnblogs.com/classmethond/p/10129069.html

做旅行义工网站蚁怎么创建网页文件

四边形教学内容:教材第34页?——36页教学目标:1.直观感知四边形,能区分和辨认四边形,知道四边形的特征.进一步认识长方形和正方形,知道它们的角都是直角.2.通过画一画、找一找、拼一拼等活动,培养学生[此文转于斐斐课件园?FFKJ.Net]的观察比较和概括抽象的能力,发展空间想象能…

东莞大型企业网站建设网站建设国风网络公司

哟哟,切克闹,视频剪辑达人们,是不是在视频素材的海洋里迷航了?别着急,今天我就给大家分享几个超实用的无水印短视频素材合集网,让你的创作更加得心应手,从此素材不再是你的烦恼 1,蛙…

网站虚拟机可以自己做吗松阳县建设局网站

1、map介绍 map是C STL的一个关联容器,它提供一对一的数据处理能力。其中,各个键值对的键和值可以是任意数据类型,包括 C 基本数据类型(int、double 等)、使用结构体或类自定义的类型。 第一个可以称为关键字(key)&…

网站还难做啊wordpress 视频 广告

如何在win7下安装Python及配置1、首先,从搜索python官载适合自己电脑python版本。2标右击桌面“计算机”择打开菜单栏中的性”。3、WindowsXP时,在新弹出的属性窗口,选择“高级”->“环境变量”。Windows7是,在新弹出的属性窗口…

阿里云做网站需要些什么简单网页设计html代码

Go语言入门 Go语言入门教程 很多人将 Go 语言 称为 21 世纪的 C 语言,因为 Go 不仅拥有 C 语言的简洁和性能,而且还很好的提供了 21 世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。 在 Go…

什么网站做任务网站标题更改后要多久才能收录

概述 异常的基类是 Throwable, Throwable 有两个子类: Exception : 表示可以恢复的异常, 编译器可以捕捉。Error : 表示编译时和系统错误, 表示系统在运行期间出现了严重的错误, 属于不可恢复的错误。 受检异常和非受检异常 受检异常指的是在编译期间会接受编译器检查, 且必…

怎样制作网站和软件wordpress扁平化风格主题

说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。 强烈推荐原文,无论是内容还是排版。 原文链接 本文地址: http://blog.csdn.net/aganlengzi/article/details/50448453 坐标系统 Coordinate Systems 在…

济南优化网站排名郑州网络什么时候恢复

很多新手朋友在学习完数据结构与算法之后,都想找个平台磨练自己的技艺。那么LeetCode绝对是不二之选。但是官网刷题不是很友好,那么今天给大家介绍一款刷LeetCode神器。也是未来工作之后的摸鱼神器。 leetcode-editor 本打工人的摸(nei&am…

绝对域名做网站可以用asp做哪些网站

你为什么需要JpomSpringBoot、Jboot等框架开发的项目通常是以Jar的方式在后台运行的,如果只有一两个项目,管理起来不是太麻烦,但是当项目多了以后,管理起来就不是那么方便了,当项目出现问题时,能够通过Jpom…

《多分支条件判断优化:switch-case 结构的技术价值分析》

在程序开发过程中,条件分支控制是实现业务逻辑的核心手段。从简单的参数校验到复杂的状态流转,开发者都需要借助条件判断结构引导程序执行路径。if-else 与 switch-case 作为两种基础的分支控制结构,各自适用于不同…

大大福利站网站建设广东手机网站制作价格

目录 一、引言 视频效果展示: 1.启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果 二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 三、源码获取 一、引言 Android初学者开发第一个完整的实例项目应该就属《音乐播放器…

丰台seo网站关键词优化自动seo系统

table中合并单元格导致的css样式不同处理方式:1.每行都拆成一个table。2.多设置几个单元格的宽度(自适应失效、第一列都设置宽度也有可能失效)。

php开源企业网站系统北京 设计 网站建设

Centos7系统 docker指定版本安装【官方文档步骤】 官方文档地址:https://docs.docker.com/engine/install/centos/ # 1.安装yum工具及设置docker-ce镜像库 sudo yum install -y yum-utils# 国外的镜像下载太慢了改成阿里云镜像库 sudo yum-config-manager --add-rep…

南昌市有帮做网站的吗wordpress+防爬虫

一、前言知道的越多不知道的就越多编程开发这条路上的知识是无穷无尽的,就像以前你敢说精通Java,到后来学到越来越多只想写了解Java,过了几年现在可能想说懂一点点Java。当视野和格局的扩大,会让我们越来越发现原来的看法是多么浅…

宏重钢结构东莞网站建设nodejs做静态网站

前端调用后端接口,本域情况下,ajax方式调用,request header中包含x-requested-with信息。跨域情况下,request header中不再包含x-requested-with。说明:1.前端ajax封装的jquery的$.ajax方法。2.后端header相关设置已允…

pc端网站建设网页制作公司的服务

目录 数据类型介绍 类型的基本归类 整形家族: 浮点数家族: 构造类型: 指针类型 空类型: 整形在内存中的存储 原码、反码、补码 大小端介绍 什么大端小端: 为什么有大端和小端: 练习 浮点型在内存中的储存 一个例子 浮点数存储规则 数据类型介绍 前面我们…

汕头东莞网站建设网站的建设任务

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”,"一句结束是否是要加;”等 为什么要使用代码规范? 在团队开发时,提高代码的可读性。 在创建项目时,我们选择的就是一套完整的代码…