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可以对字符串进行 ...
随机推荐
- 蚂蚁感冒|2014年蓝桥杯B组题解析第八题-fishers
蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...
- 51nod 1106 质数检测
#include <bits/stdc++.h> using namespace std; int n; ; bool s[maxn]; void is_prime() { memset( ...
- cent os下搭建简单的服务器
作为常和网络打交道的程序员,经常会遇到需要服务器的场合,比如搭建一个web服务器,一个代理服务器,又或者一个小型的游戏服务器. 我时常和朋友一起玩一款叫我的世界的游戏,为了能够长期稳定地联机玩,所以特 ...
- echart折线图,柱状图,饼图设置颜色
转载: 之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category ...
- 04_kafka python客户端_Producer模拟
使用的python库: kafka-python 安装方式: pip install kafka-python 简单的模拟Producer """ Kafka Produ ...
- 关于C++中的友元函数的总结
1.友元函数的简单介绍 1.1为什么要使用友元函数 在实现类之间数据共享时,减少系统开销,提高效率.如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数.具 ...
- Codeforces Round #289 (Div. 2, ACM ICPC Rules) E. Pretty Song 算贡献+前缀和
E. Pretty Song time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- C语言专题-基本数据类和占位符
C语言中常用的几种基本数据类型有 基本数据类型的长度 unsigned unsigned unsigned unsigned float没有unsigned double没有unsigned 占位符的 ...
- RabbitMQ入门_05_多线程消费同一队列
A. 多线程消费同一队列 参考资料:https://www.rabbitmq.com/tutorials/tutorial-two-java.html 消费一条消息往往比产生一条消息慢很多,为了防止消 ...
- English trip -- 国际音标表
26个字母音标表 A a [ei] B b [bi:] C c [si:] D d [di:] E e [i:] F f [ef] G g [dʒi:] H h [eit∫] I i [ai] J j ...