17.string对象中字符的处理:
cctype头文件中定义:
isalnum(c)  如果c是字母或数字,则为true
isalpha(c)  如果c是字符,则为true
iscntrl(c)  如果c是控制字符,则为true
isdigit(c)  如果c是数字,则为true
isgraph(c)  如果c不是空格,但可打印,则为true
isprint(c)   如果c是可打印字符,则为true
ispunct(c)   如果c是标点符号,则为true
isspace(c)   如果c是空白字符,则为true
isupper(c)   如果c是大写字母,则为true
islower(c)   如果c是小写字母,则为true
isxdigit(c)   如果c是十六进制数,则为true
tolower(c)   如果c是大写字母,则返回其小写形式,否则直接返回c
toupper(c)   如果c是小写字母,则返回其大写形式,否则直接返回c

空白字符指:空格,制表符,垂直制表符,回车,换行符,进纸符

(示例1:输出给定的string对象中标点符号的个数)

 1 #include <iostream>
 2 #include <string>
 3 #include <cctype>
 4 using namespace std;
 5
 6 void main()
 7 {
 8  string s("!Hello LatourEiffel!!!");
 9  string::size_type count = 0;
10
11  for (string::size_type index = 0; index != s.size(); index++)
12  {
13         if(ispunct(s[index]))
14         {
15             count++;
16         }
17  }
18  cout<<count
19         <<" punctuation characters in "
20         <<s<<endl;
21 }

(示例2:把string对象中的字母全部大写字母输出)

 1 #include <iostream>
 2 #include <string>
 3 #include <cctype>
 4 using namespace std;
 5
 6 void main()
 7 {
 8     string s("!Hello LatourEiffel!!!");
 9
10     for (string::size_type index = 0; index != s.size();index++)
11     {
12         s[index] = toupper(s[index]);
13     }
14     cout<<s<<endl;
15 }

18.标准库vector类型:
vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.

通过将类型放在类模版名称后面的<>中类指定数据类型:
vector<int> ivec;
vector<Sales_item> Sales_vec;

vector不是一种数据类型,而只是一个类模版.
vector类型的每一种都指定了其保存元素的类型,
如vector<int>和vector<string>都是数据类型.

vector对象的初始化:
vector<T> v1;      vector保存类型为T的对象,默认构造函数V1为空
vector<T> v2(v1);   v2是v1的一个副本
vector<T> v3(n,i);   v3包含n个值为i的元素
vector<T> v4(n);    v4含有值初始化的元素的n个副本
如:
vector<int> ivec(10,-1); //10 elements,each initialized to -1
vector<string> svec(10,"hi!"); //10 strings,each initialized to "hi!"

19.vector对象的操作:
v.empty()   如果v为空,则返回true,否则返回false
v.size()   返回v中元素的个数
v.push_back(t)   在v的末尾增加一个值为t的元素
v[n]    返回v中位置为n的元素
v1 = v2    把v1的元素替换为v2中元素的副本
v1 == v2   如果v1与v2相等,则返回true

注意:vector中size和empty的操作和string中相关操作类似:
vector<int>::size_type

20.vector的下标操作不能添加元素:
vector<int> ivec;
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
 {
  ivec[ix] = ix;
 }
错误:上述程序中的ivec是空的vector对象,而下标只能用于获取已存在的元素.
正确写法如下:
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
{
 ivec.push_back(ix);//ok!
}

转载于:https://www.cnblogs.com/LatourEiffel/archive/2012/11/24/2785732.html

C++Primer学习笔记(二)相关推荐

  1. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  2. C++ Primer 学习笔记(第四章:表达式)

    2019独角兽企业重金招聘Python工程师标准>>> ##C++ Primer 学习笔记(第四章:表达式) [TOC] ###4.1 基础 左值和右值: 当一个对象被用作右值的时候 ...

  3. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

  4. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  5. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  6. Scapy学习笔记二

    Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...

  7. Ethernet/IP 学习笔记二

    Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...

  8. Java学习笔记二:数据类型

    Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...

  9. 吴恩达《机器学习》学习笔记二——单变量线性回归

    吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...

最新文章

  1. 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
  2. 深度学习 | 三个概念:Epoch, Batch, Iteration
  3. 软件工程师的发明家—从发明家的视角分析软件
  4. 力扣算法001_两数之和
  5. Bootstrap 源代码之行内代码
  6. u-boot移植随笔:终于解决Nor Flash的问题了
  7. 第009讲 初识css 类选择器 id选择器 html选择器
  8. drools规则引擎应用笔记
  9. 国内游戏产业现状十一谈
  10. Java多线程编程-(17)-多线程异步调用之Future模式
  11. DEP bypass
  12. ps更换底色2019版本以上
  13. 2019.07.一年级暑假——自动随机生成100以内加减法算术题的python实现
  14. From Mother Teresa
  15. ESP32S2片外PSRAM的使用
  16. openssl命令查看证书有效期_使用 openssl 生成证书
  17. mysql数据库分区
  18. 解决:GET http://localhost:**/static/js/jquery.min.js net::ERR_ABORTED 404
  19. kafka消费者如何才能从头开始消费某个topic的全量
  20. @import 错误用法

热门文章

  1. 设置普通用户执行docker命令,执行docker命令无需输入密码或者切换root用户
  2. 2021-2027全球与中国经颅磁刺激仪(TMS)市场现状及未来发展趋势
  3. 距离传感器控制灯泡代码_如何使用颜色传感器和超声波传感器检测障碍物和避障...
  4. 2022-2028年中国阻燃纤维行业市场研究及前瞻分析报告
  5. 前端Vue学习之路(一)-初识Vue
  6. dataframe sample 采样,抽样
  7. LeetCode简单题之反转单词前缀
  8. 操作系统学习笔记 第四章:存储器管理(王道考研)
  9. CUDA 7 Stream流简化并发性
  10. 构建深度学习框架运行平台