笔记:C++学习之旅---顺序容器
<iostream>
<vector>
namespace
std;
vector
<
int
>::
iterator
find(
vector
<
int
>::
iterator
begin
,
vector
<
int
>::
iterator
end
,
int
value
)
//返回一个迭代器就相当于返回一个指针
for
(
auto
iter =
begin
; iter !=
end
;++iter)
if
(*iter ==
value
)
return
iter;
//else
return
end
;
main()
vector
<
int
> vec;
int
i;
"请输入整数到容器中:\n"
;
while
(cin >> i)
if
(i == -1)
break
;
//往容器中添加元素
int
value;
"请输入要查找的元素数值\n"
;
if
(vec.empty())
"容器为空\n"
<< endl;
return
-1;
else
//查找指定元素
return
0;
练习9.9:begin和cbegin两个函数有什么不同?
cbegin是C++新标准引入来的,用来与auto结合使用。它返回指向容器第一个元素的const迭代器,可以用来只读地访问容器,但不能对容器元素进行修改。因此,当不需要写访问时,应该使用cbegin。
下面4个对象分别是什么类型?
- vector<int> v1;
- const vector<int> v2;
- auto it1 = v1.begin(), it2 = v2.begin();
- auto it3 = v1.begin(), it4 = v2.cbegin();</span>
v1是int的vector类型,可以修改v1的内容,包括添加、删除元素以及修改元素等操作。
v2是int的常量vector类型,其内容不能修改,添加、删除元素以及修改元素值等均不允许。
<iostream>
<vector>
<list>
namespace
std;
main()
list
<
int
> ilst = {1,2,3,4,5,6,7,8};
vector
<
int
> ivc = {2,7,4,3,5,1,10,6};
//! from list<int> to vector<double>
vector
<
double
> dvc(ilst.begin(), ilst.end());
for
(
auto
i : ilst) cout << i;
for
(
auto
t : dvc) cout << t;
//! from vector<int> to vector<double>
vector
<
double
> dvc2(ivc.begin(), ivc.end());
for
(
auto
i : ivc) cout << i;
for
(
auto
t : dvc2) cout << t;
return
0;
<iostream>
<vector>
<deque>
<string>
namespace
std;
main()
deque
<
string
> input;
string
str;
while
(cin >> str)
if
(str ==
"#"
)
break
;
for
(
auto
iter = input.cbegin(); iter != input.cend(); ++iter)
"iter:"
<< *iter << endl;
return
0;
<iostream>
<vector>
<list>
namespace
std;
main()
int
ia[] = { 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };
//init
vector
<
int
> vec(ia, end(ia));
list
<
int
> list(vec.begin(), vec.end());
//从list中删除奇元素
for
(
auto
lt = list.begin(); lt != list.end(); ++lt)
if
(*lt % 2)
"奇数:"
<<*lt << endl;
else
//删除vector中的偶数
for
(
auto
vt = vec.begin(); vt != vec.end(); ++vt)
if
(*vt % 2 == 0)
"偶数:"
<<*vt << endl;
else
return
0;
rd_list<int> 中的奇数元素。
<iostream>
<forward_list>
namespace
std;
main()
forward_list
<
int
> list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
auto
prev = list.before_begin();
// 前驱,list中“首前元素”;
auto
curr = list.begin();
//开始位置,第一个元素;
while
(curr !=list.end())
if
(*curr % 2 == 1)
//元素为奇数
//删除prev之后元素,即:curr指向的元素;
else
//奇数时,将curr保存,curr自加;
for
(
auto
i : list)
"i:"
<< i << endl;
return
0;
<iostream>
<string>
<vector>
namespace
std;
All_Sum(
vector
<
string
> &
v
)
int
sum = 0;
for
(
auto
const
&s : v)
return
sum;
All_Float_Sum(
vector
<
string
> &
v
)
float
sum = 0.0;
for
(
auto
const
&s : v)
return
sum;
main()
vector
<
string
> v = {
"1"
,
"2"
,
"3"
,
"4"
,
"5.5"
,
"6.1"
};
"All elements sum:"
<<All_Sum(v)<<endl; //21
"ALL float elements string sum:"
<<All_Float_Sum(v)<<endl; //21.6
return
0;
笔记:C++学习之旅---顺序容器的更多相关文章
- 【c++ Prime 学习笔记】第9章 顺序容器
一个容器是特定类型对象的集合 顺序容器中元素的顺序与其加入容器的位置对应 关联容器中元素的顺序由其关联的关键字决定,关联容器分为有序关联容器和无序关联容器 所有容器类共享公有接口,不同容器按不同方式扩 ...
- C++学习基础四——顺序容器和关联容器
—顺序容器:vector,list,queue1.顺序容器的常见用法: #include <vector> #include <list> #include <queue ...
- C++ Primer 读书笔记: 第9章 顺序容器
第9章 顺序容器 引: 顺序容器: vector 支持快速随机访问 list 支持快速插入/删除 deque 双端队列 顺序容器适配器: stack 后进先出栈 queue 先进先出队列 priori ...
- 笔记-JavaWeb学习之旅19
Redis:redis是一款高性能的NOSQL系列的非关系型数据库 NOSQL: Not Only SQL ,意即"不仅仅是SQL",是一项全新的数据库理念,泛指非关系型数据库 r ...
- 笔记-JavaWeb学习之旅15
Filter:过滤器 概念:当访问服务器的资源是,过滤器可以将请求拦截下来,完成一些特殊的功能 快速入门: 步骤: 定义一个类,实现接口Filter 复写方法 配置拦截路径 package com.d ...
- 笔记-JavaWeb学习之旅14
JSTL:JavaServer Pages Tag Library JSP标准标签库 if标签 <%@ page import="java.util.ArrayList" % ...
- 笔记-JavaWeb学习之旅11
请求转发:一种在服务器内部的资源跳转方式 使用步骤 1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path) ...
- 笔记-JavaWeb学习之旅8
Window对象-定时器方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 笔记-JavaWeb学习之旅7
JavaScript基础 概念:一门客户端脚本语言,运行在客户端浏览器中,每一个浏览器都有JavaScript的解析引擎,是一个脚本语言,不需要编译,直接就可以被浏览器解析执行. JavaScript ...
- 笔记-JavaWeb学习之旅5
CP30的演示 package cn.itcast.datasourcejdbc; import com.mchange.v2.c3p0.ComboPooledDataSource; import j ...
随机推荐
- 【原创】SeetaFace2 Android编译
SeetaFace2 github上有很完整的编译说明,但是自己编译过程中还是遇到了一点小问题.记录一下 编译环境: wsl ubuntu 20.04 执行编译命令 cmake .. -DCMAKE_ ...
- idea的tomcat控制台输出乱码
tomcat乱码问题 idea的tomcat控制台输出乱码 找到自己的安装目录 用vscode打开 ctrl+f打开搜索 输入encoding 最后一个是用来给idea中的控制台输出 --->改 ...
- JSP环境搭建及入门 和 虚拟路径和虚拟主机
Jsp:是一个动态网页,而不是静态网页 html,css,js,Jquery:是静态网页 动态网页是随着,时间,地点,用户操作,而改变 静态不需要jsp 动态是需要的 BS 可以通过浏览器直接访问浏览 ...
- 函数XLOOKUP
这个公式非OFFICE 365用户需要选中执行范围后 按Ctrl+Shift+Enter三键 (因为不支持公式溢出) XLOOKUP函数的基本结构是: =XLOOKUP(lookup_value,lo ...
- SDK测试标准
测试分类 具体测试项 测试内容 测试方法 文档测试 接口清单 接口清单是否完整,正确,包含提供给开发者的协议所有字段的定义和解释 人工检查 更新说明 要说明新增,删除的接口定义 Demo示例 显示如何 ...
- 打不过AI就拉拢?ChatGPT和MidJourney已成我小秘书!
为了体验AI,晓衡这两周战斗力爆棚了! 每天大概睡了四~五个小时,而且中午也没有休息过,但精神却还很亢奋. 直到周一下午,身体才有种被掏空的感觉,晚上 10 点就睡了.可能是兴奋劲还在,早晨不到 6 ...
- ElasticSearch 实现分词全文检索 - term、terms查询
数据准备 ElasticSearch 实现分词全文检索 - 测试数据准备 ElasticSearch的各种查询 不会对查询关键字进行分词 term 查询 term的查询是代表完全匹配,搜索之前不会对你 ...
- 【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现
[桥接设计模式详解]Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的 ...
- D7lsu. 树题
\(\text{Solution}\) 又是一道考场想到做法写不出来的题 对于 \(\ge x\) 的数全部 \(+1\) 的操作有个很优美的大材小用的想法,那就是分段函数 于是线段树倒着维护分段函数 ...
- RPA的概念和优势
大多数人每天都会使用到一些机器人流程自动化的工具,例如读取邮件和系统,计算.生成文件和报告.而在未来,那些你不想做的枯燥的工作,也许真的可以不做了,重复化.标准化的工作都可以让机器人帮你完成.想必此刻 ...