C++ primer 第四版 练习3.13,3.14
读一组整数到 vector 对象,计算并输出每对相邻元素的 和。如果读入元素个数为奇数,则提示用户后一个元素 没有求和,并输出其值。
vector<int> ivec;
int ival;
cout<<"Enter numbers(Ctrl + z to end) "<<endl;
while(cin>>ival)
{
ivec.push_back(ival);
}
if(ivec.size() == )
{
cout<<"No elements"<<endl;
return -;
}
cout<<"Sum of each pair of adjacent element in the vector:"<<endl;
for(vector<int>::size_type ix = ;ix < ivec.size()-;ix = ix + )
{
cout<<ivec[ix] + ivec[ix+]<<"\t";
if((ix+)% == )
{
cout<<endl;
}
}
if(ivec.size()% !=)
{
cout<<endl;
cout<<"The last element is not been summed"<<"and the value is "<<ivec[ivec.size()-]<<endl;
}
然后修改程序:头尾元素两两配 对(第一个和后一个,第二个和倒数第二个,以此类推), 计算每对元素的和,并输出。
vector<int> ivec;
int ival;
cout<<"Enter numbers(Ctrl + z to end) "<<endl;
while(cin>>ival)
{
ivec.push_back(ival);
}
if(ivec.size() == )
{
cout<<"No elements"<<endl;
return -;
}
cout<<"Sum of each pair of adjacent element in the vector:"<<endl;
vector<int>::size_type cnt =;
vector<int>::size_type first =,last = ivec.size() -;
for(;first < last;++first,--last)
{
cout<<ivec[first] + ivec[last]<<"\t";
++cnt;
if(cnt% == )
{
cout<<endl;
}
}
if(first == last)
{
cout<<endl;
cout<<"The last element is not been summed"<<"and the value is "<<ivec[first]<<endl;
}
读入一段文本到 vector 对象,每个单词存储为 vector 中的一个元素。把 vector 对象中每个单词转化为大写字 母。输出 vector 对象中转化后的元素,每八个单词为一 行输出。
vector<string> svec;
string str;
cout<<"Enter numbers(Ctrl + z to end) "<<endl;
while(cin>>str)
{
svec.push_back(str);
}
if(svec.size() == )
{
cout<<"No elements"<<endl;
return -;
}
cout<<"Transformed elements from the vector:"<<endl; for(vector<string>::size_type ix =;ix != svec.size();++ix)
{
for(string::size_type index = ;index != svec[ix].size();++index) if(islower(svec[ix][index]))
svec[ix][index] = toupper(svec[ix][index]);
cout<<svec[ix]<<" "; if((ix+)% ==) cout<<endl; }
列出三种定义 vector 对象的方法,给定 10 个元素,每 个元素值为 42。指出是否还有更好的实现方法,并说明 为什么。
方法一:
vector<int> ivec(,);
方法二:
vector<int> ivec();
for(ix =;ix != ivec.size() - ;++ix )
{
ivec[ix] = ; }
方法三:
vector<int> ivec();
for(vector<int> iterator iter = ivec.begin();iter != ivec.end();++ iter )
{
*iter =;
}
方法四:
vector<int> ivec;
for(cnt = ;cnt<=;++cnt)
{
ivec.push_back();
}
方法五:
vector<int> ivec;
vector<int> iterator iter = ivec.end();
for(int i = ;i<;i++)
{
ivec.insert(iter ,);
iter = ivec.end();
}
以上是C++ primer给出的五种方法,书上说第4,5种方法更好些。因为他们使用标准库容器中定义的容器操作在容器中添加元素,无需再vector定义对象时指定容器的大小,比较灵活且不容易出错。
C++ primer 第四版 练习3.13,3.14的更多相关文章
- C++学习书籍推荐《C++ Primer 第四版》下载
百度云及其他网盘下载地址:点我 编辑推荐 <C++ Primer中文版(第4版)>对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使<C++ Primer中文版 ...
- C++_系列自学课程_第_12_课_语句_《C++ Primer 第四版》
前面的文章说完了表达式和类型转换的部分内容,在我参考的书里面,接下来讨论的是各种语句,包括:顺序语句.声明语句.复合语句(块语句).语句作用域 .if语句.while语句.for语句.do...whi ...
- C++ Primer 第四版阅读笔记
阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...
- c++ Primer 第四版 第一阶段 const总结
由于期末值考一门软件安全,所以果断看起c++Primer ,因为之前看谭浩强的c++感觉没什么用啊.所以这本书每阶段做个总结!!! 1.Const限定符作用: 在for循环中上限应该用一个固定变量来设 ...
- <C++Primer>第四版 阅读笔记 第三部分 “类和数据抽象”
类定义了数据成员和函数成员:数据成员用于存储与该类类型的对象相关联的状态:而函数成员则负责执行赋予数据意义的操作. 第12章 类 一个类可以包含若干公有的.私有的和受保护的部分:在public部分定义 ...
- C++ Primer 第四版中文版
C++Primer是C++的经典教程. 开始时间:2014-08-10 完成时间:2014-08-28 学习成果:基础语法+
- C++_系列自学课程_第_11_课_类型转换_《C++ Primer 第四版》
上次说了关于表达式的一些内容,说到还有一些关于数据类型转换的内容,今天我们接着八一八C++中的数据类型转换. 一.隐式类型转换 在表达式中,有些操作符可以对多种类型的操作数进行操作, 例如 + 操作符 ...
- C++_系列自学课程_第_10_课_表达式_《C++ Primer 第四版》
程序设计语言中大部分程序都在进行表达式的求值操作, 例如求两个数的和,求一个表达式的逻辑结果,或者通过输入输出表达式语句进行输入和输出. 这里我们对表达式进行讨论. 一.表达式 1.表达式 表达式由一 ...
- C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》
前面说了写关于数组和指针的内容,这次在这里讨论一下字符串,讨论一下C语言风格的字符串. 在C语言里面我们利用字符数组来对字符串进行处理, 在C++里面我们前面说过一种类类型string可以对字符串进行 ...
随机推荐
- 【第十二章】 springboot + mongodb(复杂查询)
简单查询:使用自定义的XxxRepository接口即可.(见 第十一章 springboot + mongodb(简单查询)) 复杂查询:使用MongoTemplate以及一些查询条件构建类(Bas ...
- Java 多线程 破解密码 demo
功能要求: 具体类: Decrypt 测试类,用来启动破解和日志线程 DecryptThread 破解线程类,用来生成测试的字符串,并暴力破解 LogThread 日志类,将输出每次生成的字符串结果 ...
- xshell5 Linux 上传下载文件
1,先登录身份验证和文件传输ZMODEM 选择自动激活. 2,rpm -qa | grep lrzsz 利用此命令查看是否安装了lrzsz . 如果没有任何反应则是没有安装 若没有安装 yum ins ...
- Elasticsearch 原理
Elasticsearch简介 Elasticsearch是一个基于Apache lucene的实时分布式搜索.具有以下优点: 1.实时处理大规模数据.2.全文检索,能够做到结构化检索和聚合分析.3. ...
- JS进阶系列之this
在javascript中,this的指向是在执行上下文的创建阶段确定的,其实只要知道不同执行方式下,this的指向分别是是什么,就能很好的掌握this这个让人摸不透的东西. 一.全局执行 全局执行又分 ...
- python 命令行升级pip
import os import sys path = '"'+os.path.dirname(sys.executable)+'\\scripts\\pip" install - ...
- Ubuntu14.04 获取文件或者文件夹大小
[root@bogon ~]# stat -c%s install.log
- [STL][C++]STACK QUEUE
参考:http://www.cnblogs.com/mfryf/archive/2012/08/09/2629992.html stackstack 模板类的定义在<stack>头文件中. ...
- Codeforces 888E - Maximum Subsequence(折半枚举(meet-in-the-middle))
888E - Maximum Subsequence 思路:折半枚举. 代码: #include<bits/stdc++.h> using namespace std; #define l ...
- html css 伪样式
伪类的分类及作用: 引自W3School教程伪元素的分类及作用: 这里就不进行多的描述,原文地址:http://www.it165.net/design/html/201406/2643.html