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

公司网站建设维护合同范本网站建设的面试要求

公司网站建设维护合同范本,网站建设的面试要求,文章一键导入wordpress,自我介绍网页制作模板目录 第三章 一、命名空间的using声明 二、标准库的string类型 1、string对象的定义和初始化 2、string对象的读写 3、string对象的操作 4、string对象中字符的处理 三、标准库的vector类型 1、vector对象的定义和初始化 2、vector对象的操作 四、迭代器简介 1、简…目录 第三章 一、命名空间的using声明 二、标准库的string类型 1、string对象的定义和初始化 2、string对象的读写 3、string对象的操作 4、string对象中字符的处理 三、标准库的vector类型 1、vector对象的定义和初始化 2、vector对象的操作 四、迭代器简介 1、简介 2、begin和end操作 3、vector迭代器的自增与解引用运算 4、或操作符 5、应用 6、const_iterator 7、迭代器的算术操作 五、标准库bitset类型 1、用unsigned值初始化bitset对象 2、用string对象初始化bitset对象 3、bitset对象上的操作 第三章 一、命名空间的using声明 1、是作用域操作符。含义是右操作数的名字可以在左操作数的作用域中找到。 例std::cin是说cin是在命名空间std中定义的。 2、使用using声明可以直接引用名字不需要再引用该名字的命名空间。 #include string #include iostreamusing std::cin; using std::string;int main() {string s;cins;couts;std::couts; } 3、但是在头文件中必须使用完全限定的标准库名字。并且头文件中应该只定义必要的东西。 如果在头文件中放置using声明相当于在包含该头文件的每个程序中都放置了同一using声明不论该程序是否需要using声明。 二、标准库的string类型 1、string对象的定义和初始化 构造函数是一个特殊成员函数定义如何初始化该类型的对象。 初始化string对象的方式 1string s1默认构造函数s1为空串 2string s2将s2初始化为s1的一个副本 3string s3“value”将s3初始化为一个字符串字面值副本 4string s4n‘c’将s4初始化为字符‘c’的n个副本 2、string对象的读写 1、使用标准输入输出读写string对象 int main() {string s;cins;coutsendl;return 0; } 特点 读取并忽略开头所有的空白字符空格换行符制表符读取字符直到再次遇到空白字符终止读取 例输入 “   Hello World    ”   会输出“Hello”不含任何空格 改写 string s1,s2; cins1s2; couts1s2endl; 输入 “   Hello World    ”   会输出“HelloWorld” 读取未知数目的string对象分单词读取 int main() {string word;while(cinword)coutwordendl;return 0; } 若还未到达文件尾且未遇到无效输入则执行while循环体。若到达了文件尾则跳出while循环 2、用getline读取整行文本 getline函数接受两个参数一个输入流对象和一个string对象 从输入流的下一行读取并保存读取的内容到string中但不包含换行符 getline不忽略开头的换行符。只要getline遇到换行符即使它是输入的第一个字符也将停止读入并返回。如果第一个字符就是换行符string参数将被置空。 例分行读取 int main() {string line;while(getline(cin,line))coutlineendl; //由于line不含换行符若逐行输出需要自行添加endlreturn 0; } 3、string对象的操作 1、string对象的长度是指string对象中字符的个数可通过size操作获取 判断string对象是否为空 if(st.size()0) //若为真则st为空 if(st.empty()) //若为真则st为空 2、 stringsize_type类型 不要把size的返回值赋给int变量。因为stringsize_type是unsigned类型存储长度是int能存储的两倍用int可能会溢出 为了避免溢出保存string对象size的最安全的方法是使用标准库类型stringsize_type 3、string关系操作符、、 比较两个string对象时采用大小写敏感的字典排序策略 如果两个string对象长度不同且短的string对象与长的string对象前面的部分匹配是其前缀则短的string对象小于长的string对象。如果两个string对象字符不同则比较第一个不匹配的字符 4、string对象的赋值 st1st2; 先把st1占用的相关内存释放掉然后分配给st1足够存放st2副本的内存空间最后把st2中的所有字符复制到新分配的内存空间。 5、两个string对象相加 string s1(hello,   );string s2(world\n);string s3 s1 s2;  //s3 is hello,   world\n 如果要把s2直接追加到s1末尾可以使用操作符 s1 s2; 6、和字符串字面值的连接 当进行string对象和字符串字面值混合连接操作时操作符的左右操作数必须至少有一个是string类型的。 string s1 world; string s2 hello ,; //不合法两侧都是字符串类型 string s3 s1 \n //合法有一侧是string类型 string s4 s1 , yes; //合法从左到右计算s1 ,算完变成string类型 string s5 , yes s1; //不合法从左到右计算两个字符串类型先计算 7、从string对象获取字符 用下标分别取出string对象的每个字符分行输出 string str(some string); for(string::size_type ix 0; ix ! str.size(); ix) {cout str[ix] endl; } 8、计算下标值 str[int1*int2] int3; 虽然整型数值都可以作为索引但索引的实际数据类型是unsigned类型string::size_type 4、string对象中字符的处理 可打印的字符是指那些可以显示表示的字符包括空格也是可显示表示的。 空白字符是空格、制表符、垂直制表符、回车符、换行符、进纸符中的任意一种。 标点符号是除了数字、字母或可打印的空白字符如空格以外的其他可打印字符 例1输出一给定string对象中标点符号的个数 string s(Hello World!!!); string::size_type punct 0; for(string::size_type index 0; index ! s.size(); index) {if(ispunct(s[index]) punct; } coutpunctendl;//输出3 例2把string对象s中的字母改写为小写字母 string s(Hello World!!!); for(string::size_type index 0; index ! s.size(); index)s[index] tolower(s[index]); cout s endl;//输出hello world cname头文件中定义的名字都定义在命名空间std内而.h版本中的名字不是这样。 通常c程序中应该采用cname这种头文件版本这样标准库中的名字在命名空间std中保持一致。 string s; cout s[0] endl; //声明了一个字符串 s但没有给它赋值。因此它是一个空字符串。 //当你尝试访问 s[0] 时你正在尝试访问空字符串的第一个字符这是未定义的行为undefined behavior。 //在C中尝试访问空字符串或超出字符串长度的索引通常会导致程序崩溃或产生不可预测的结果。 三、标准库的vector类型 一个容器中所有对象都必须是同一种类型的。 vector是一个类模板而不是一种数据类型。可用来定义任意多种数据类型。如vectorint、vectorstring 都是数据类型。 1、vector对象的定义和初始化 创建确定个数的元素 vectorint ivec(10,-1); vectorstring svec(10,hi!); 值初始化 如果没有指定元素的初始化式标准库将自行提供一个元素的初始值进行值初始化。 具体值是什么取决于存储在vector中元素的数据类型。 vetcorint fvec(10);//10个元素每个都初始化为0 vetcorstring svec(10);//10个元素每个都初始化为空串 以上即用各类型默认构造函数创建初始化式。 若元素类型是没有定义任何构造函数的类类型标准库仍产生一个带初始值的对象这个对象的每个成员进行值初始化。 2、vector对象的操作 1、empty和size操作类似于string类型。size返回类型为相应vector类定义的size_type的值。 vectorint::size_type  //okvector::size_type  //error vector类型总是包括vector的元素类型 2、向vector中添加元素 string word; vectorstring text; while(cinword)text.push_back(word); 3、vector的下标操作 for(vectorint::size_type ix 0; ix ! ivec.size(); ix)ivec[ix] 0; 但是只能用于已经有元素的vector若vector不确定有没有元素不能用下标赋值(可能会溢出) 只能用v ix; ivec.push_back(v)的方式赋值并添加到vector中 例题 读入一段文本到vector对象每个单词存储为vector中的一个元素把vector对象中每个单词转化为大写字母。输出vector对象转化后的元素每八个单词为一行输出。 #include iostream #include fstream #include vector #include cassert #include string #include sstream using namespace std; int main() {ifstream in(1.txt); //打开文件if(!in.is_open()) coutopen is errorendl; //确认是否打开//assert(in);string word;string line;vectorstring words;// 逐行读取文件内容 while (getline(in, line)) { istringstream ss(line); // 使用istringstream分割行到单词并存入vector while (ss word) { words.push_back(word); } }// 关闭文件 in.close(); int count0; for(vectorstring::size_type ix0; ix ! words.size(); ix){for(string::size_type j0; j ! words[ix].size(); j){words[ix][j] toupper((unsigned char)words[ix][j]); //每个字母变大写}coutwords[ix] ;count;if(count%8 0) //满八个换一行{coutendl;}}if(count%8!0) //最后一行若不满8个也换行{coutendl;}return 0; } 常用的简便输出vector的方法 vectorstring words; for (const auto w : words) //const是指不改变wauto指自动识别words里存的类型 { std::cout w ; } 关于sstream sstream 是 C 标准库中的一个头文件全称为 sstream。它提供了对字符串流string stream的支持允许你以类似于文件流file stream或控制台流console stream的方式对字符串进行操作用于字符串的解析和转换。sstream 头文件中定义了几个类主要包括 istringstream、ostringstream 和 stringstream。 istringstream 类用于从字符串中读取数据类似于输入文件流ifstream。ostringstream 类用于将数据写入字符串类似于输出文件流ofstream。stringstream 类同时支持读取和写入字符串类似于输入输出文件流fstream 四、迭代器简介 1、简介 迭代器对所有容器都适用c程序更倾向于使用迭代器而不是下标操作访问容器元素。 每种容器都定义了自己的迭代器类型如vector vectorint::iterator iter; 2、begin和end操作 每种容器都定义了begin和end函数用于返回迭代器。 begin返回迭代器指向的第一个元素 vectorint::iterator iter ivec.begin(); end操作返回的迭代器指向vector末端元素的下一个元素即指向了一个不存在的元素 如果vector为空begin返回的迭代器与end返回的迭代器相同 3、vector迭代器的自增与解引用运算 迭代器类型可以使用解引用操作符*来访问迭代器所指向的元素 例*iter 0iter 因为end操作返回的迭代器不指向任何元素因此不能对它进行解引用或自增操作 4、或操作符 用来比较两个迭代器如果两个迭代器对象指向同一个元素则它们相等否则不相等。 5、应用 for(vectorint::size_type ix 0; ix ! ivec.size(); ix)ivec[ix] 0; //将vector中元素循环赋值为0 for(vectorint::iterator iter ivec.begin(); iter ! ivec.end(); iter)*iter 0; //用迭代器改写 如果vector为空程序也是安全的。因为ivec为空的话begin返回的迭代器不指向任何元素从begin操作返回的迭代器和从end操作返回的迭代器值相同因此for语句中测试条件立即失败。 6、const_iterator 每种容器类型还定义了一种名为const_iterator的类型该类型只能用于读取容器内元素但不能改变其值。 for(vectorint::const_iterator iter ivec.begin(); iter ! ivec.end(); iter)cout*iterendl; //只能用不能改变其指向对象的值 使用const_iterator类型时迭代器自身的值可以变可以自增或解引用但不能改变其指向的元素的值。 不要把const_iterator和const的iterator混淆 const的iterator是指const类型的iterator迭代器。声明一个const迭代器时必须初始化迭代器且一旦初始化后就不能改变它的值不能自增或解引用即不能让它指向其他元素但可以改变它指向的元素的值。 vectorint nums(10); const vectorint::iterator cit nums.begin(); *cit 1;//可以改变它指向的元素的值 7、迭代器的算术操作 iter n      iter - n iter1 - iter2 vectorint::iterator mid vi.begin() vi.size()/2; //比遍历到中间快 任何改变vector长度的操作都会使已存在的迭代器失效。比如调用push_back()后就不能再信赖指向vector迭代器的值了。  五、标准库bitset类型 bitset类是一种类模板 与vector不同的是bitset类型对象的区别仅在于长度不在于类型。 定义bitset时要明确bitset含有多少位需要在尖括号内给出它的长度值。 bitset的构造函数 1、用unsigned值初始化bitset对象 在32位unsigned long的机器上十六进制值0xffff表示为二进制位就是16个1和16个0 bitset16 bitvec1(0xffff); //少于unsigned long的位数初始值的高阶位被丢弃 //bits 0……15 are set to 1 bitset32 bitvec2(0xffff); //与unsigned long的位数相同正好放置初始值 //bits 0……15 are set to 116……31 are 0 bitset128 bitvec3(0xffff); //长度大于32,31位以上的高阶位被置0 //bits 32 through 127 initialized to zero 2、用string对象初始化bitset对象 string strval(1100); bitset32 bitvec4(strval); //bitvec4的位模式中第2和第3的位置为1其余位置为0.如果string对象的字符个数小于bitset类型的长度则高阶位将置为0。 string对象和bitset对象之间是反向转化的。string对象最右边的字符下标最大的字符用来初始化bitset对象的低阶位下标为0的位 也可以只用string对象的子串作为bitset对象的初始值。 bitset32 bitvec5(str,5,4); //从str[5]开始往后4位 bitset32 bitvec6(str, str.size() - 4); //最后4位 3、bitset对象上的操作 1count操作的返回类型是标准库中命名为size_t的类型。size_t类型定义在cstddef头文件中。该文件是C标准库的头文件stddef.h的C版本。 2bitset的size操作返回bitset对象中二进制位的个数返回值的类型是size_t 3访问bitset对象中的位可以用下标也可以用下标测试某位的值或设置某位的值 for(int index 0;index !32; index 2) {bitvec[index] 1; } 4flip操作 bitvec.flip(0);//bit的第一位取反 bitvec[0].flip();//同上 bitvec.flip();//bit的所有位取反 5获取bitset对象的值 当bitset类型的长度unsigned long的长度时才可以使用to_ulong操作。 bitset32 bitvec2(0xffff); unsigned long ulong bitvec3.to_ulong(); cout ulong ulong endl; 输出 65535。 在十六进制数0x0000ffff中每个十六进制位代表4个二进制位。则0x0000ffff的低16位都是1 转化为10进制1 * 1 1 * 2 1 * 4 1 * 8 1 * 16 1 * 32 1 * 64 1 * 128 1 * 256 1 * 512 1 * 1024 1 * 2048 1 * 4096 1 * 8192 1 * 16384 1 * 32768 65535 6输出二进制位 bitset32 bitvec2(0xffff); cout bitvec2: bitvec2 end;
http://www.pierceye.com/news/508879/

相关文章:

  • 做网站最好的引流推广方法软件
  • 烟台网站建设4038gzs成都建设网上商城平台公司
  • 网站建设费在会计上怎么入账做学校网站的目的
  • 常德网站建设设计下载百度安装
  • 站长平台有哪些广东东远建设工程管理有限公司网站
  • 做蓝牙app的网站跨境电商是不是坑
  • 电子商务网站开发 刘兰娟企业网站建设发展平台
  • 天津做网站得公司游戏界面设计网站
  • 手机网站制作推广网站开发制作培训学校
  • 网站建设需要哪些成本自媒体怎么赚钱
  • 手机怎么访问微网站网站建设市场调研框架
  • 前端网站主题怎么做业务外包的优势和劣势
  • 西安模板网站建设套餐保定seo排名外包
  • 自己做的网站怎么设置文件下载北京朝阳区楼盘
  • h网站建设揭阳网站如何制作
  • phpstudy建设网站教程微信小程序开发需要什么
  • 快手刷评论推广网站网站几个数据库
  • 山东网站建设网站我国网站开发
  • 常见的网站类型有北京电力建设公司待遇
  • 网站分析流程wordpress表单统计插件下载
  • 南宁网站建设公司seo优化武鸣住房和城乡规划建设局网站
  • 在线制作网站门户站模板
  • 邵阳网站建设推广56m做图片视频的网站是什么
  • 如何提高网站的点击率域名空间网站推广
  • 上海松江做网站建设wordpress 拒绝连接
  • 有免费的个人网站吗富德生命人寿保险公司官方网站保单服务
  • 网站备案 子域名网页视频制作软件
  • 空间 网站网站建设哪个好
  • 公司网站域名价格云南免费网站建设
  • 网站跳转域名不变常见网站架构