php网站哪些,秦皇岛属于哪个省哪个市的,手机 字体 wordpress,上海营销平台网站建设string对象中每个字符的处理#xff1a; 要用到 for(声明:表达式) 语句 比如简单的打印string str中每一个字符 --- string str(hello world!!!); for(auto c: str)coutcendl; (ps:这里auto 的意思是让编译器自己来决定c变量的类型) --- 再举一… string对象中每个字符的处理 要用到 for(声明:表达式) 语句 比如简单的打印string str中每一个字符 --- string str(hello world!!!); for(auto c: str)coutcendl; (ps:这里auto 的意思是让编译器自己来决定c变量的类型) --- 再举一个例子统计string str的标点符号数目 string str(hello world!!!); decltype(str.szie()) num_cnt 0; for(auto c : s) if(ispunct(c)) num_cnt; coutnum_cnt punctuation characters in sendl; (ps:这里decltype(str.size()) 是代表的str.size()声明类型,而str.size()的类型不是整型,而是一个无符号的其他类型。 然后使用 ispunct(char c)是包含在头文件cctype里面的。cctype 头文件里面有许多 isalnum判断是否数字isalpha判断是否字母..etc) ---- 那假如希望改变string str的字符呢而不是仅仅进行统计和输出 这个例子是将str的全部变成大写字母 string str(hello world!!!); for(auto c : str) ctoupper(c) coutstrendl; (ps: 这里有个小变化for(auto c:str) 变成 for(auto c:str)! 原来str 的每个字符 是复制给 auto c。所以即使你改变了auto c 也并没有改变str的每个字符但是auto c 没有这里c是代表str 每个字符的引用而非副本。也就是c 是每个字符的另一个别名而已! 所以改变c 确实能够改变str 的字符!) --- 假如希望处理访问str 中某个特定的字符 - 下标:使用str[x] x是无符号数且小于等于size-1! 使用一个例子来介绍: 一个将十进制转成16进制的程序 const string hexdigits0123456789ABCDEF; string result; string::size_type n; coutenter a series of numbers between 0 and 15 seperately with spaceendl; while(cinn) if(nhexdigits.size()) resulthexdigits[n]; coutresult; - 迭代器:迭代器有点像指针但又很有区别。在标准类型中从string 到 vector 都支持用迭代器访问容器中的一个元素。 并且许多其他的标准库定义的容器也支持:使用迭代器访问容器中的一个元素 (只有极少数的才支持用下标法来访问容器里元素) 举个例子:将string容器(或者称string 对象)的第一个元素转变成大写 string str(hello,you bitch!); if(s.begin() ! s.end()){ auto its.begin(); *ittoupper(*it) ;} it 是迭代器, 它指向s容器的第一个元素。它的类型我们不得而知所以命名它auto *it 是s容器第一个元素的引用(别名)! ( s.end()指向s容器尾元素下一个位置 s.begin()指向容器的第一个位置, s.begins.end时相当于s容器为空! it 说明指向s容器的下一个元素 it-- 说明指向上一个元素 it-property 说明是元素的某一个属性相当于(*it).property ) -除了auto cs.begin() 如何声明一个迭代器呢 vectorint::iterator i1; string::iterator i2; 能读修改 string容器的元素 vectorint::const_iterator I1; string::const_iterator I2; 仅仅能读string容器的元素 标准库类型Vector 想用vector 先要 #includevector using std::vector Vector如何初始化 Vector支持三种初始化方法。 一种是用花括号的列表初始化 vectorint v1{1,2,3}; 说明v1容器里有三个元素分别是123 一种是用括号的元素数目初始化 vectorstring v1(10,hi); vectorstring v2(10);说明v1有10个hi的string串v2有10个空串 一种是拷贝初始化 vectorstringv1v2,vectorstringv1(v2)。vectorint v0 v0是空容器! Vector支持什么操作呢 最重要Vector支持操作是向Vector添加元素! vectorint v2; //此时是一个空的v2容器 for(int i0;i100;i) v2.push_back(i); 还有其他操作: v.empty() 判断空 v.size() 判断大小 v.push_back(t)添加元素t如容器V v[n]返回容器v的第n个位置引用 vv1,v{a,b,c..} 都是用右边的容器替换左边的v容器 vv1,v!v1,v v1 数目相等且每一个元素相等即容器之间第一对相异的元素决定容器大小关系 转载于:https://www.cnblogs.com/zzzPark/p/6377708.html