c++第二十天
p111~p114:
与旧代码的接口
1、C++程序中的C风格字符串:任何出现字符串字面值的地方都可以以空字符结束的字符数组来替代。
const char str[] = {"Hello, world"};
string s(str);
2、如果程序的某处需要一个C风格字符串:利用 s.c_str()返回。
示例:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#include<string>
using std::string;
int main()
{
string s = "Hello, world";
const char *str = s.c_str(); // 结果指针的类型是const char*
// 输出1
cout << str << endl;
// 改变s的值之后,str可能会失去效用,如果想一直使用返回的数组,最好将该数组拷贝一份。
s += ", my name is jack.";
// 输出2
cout << str << endl;
return ;
}
输出结果:

3、使用数组初始化 vector对象。
(用于初始化 vector对象的值可能仅是数组的一部分,可以用arr+n来表示首尾元素的地址)
#include<vector>
using std::vector;
#include<iterator>
using std::begin;
using std::end;
int main()
{
int int_arr[] = {, , , };
vector<int> ivec(begin(int_arr), end(int_arr));
return ;
}
多维数组
1、谨记:严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。这一点,对今后理解和使用多维数组大有益处。
2、对于二维数组来说,常把第一个维度称为“行”,第二个维度称为“列”。
3、多维数组的初始化。(两种方式)
int ia[][] = {
{, , },
{, }, // 初始化前第二行的前两个元素
{, , }
}
当然也可以:
int ia[][] = {, , , , , , , , , };
(通常,只想初始化个别元素时使用第一种方式,其余元素会被“默认初始化”)。
4、多维数组的下标引用。以int arr[10][10][10];为例,
1)如果含有的下标运算符和数组维度一样多,
例如 arr[1][2][3];表示给定类型的元素,这里是 int型。
2)如果表达式含有的下标运算符数量比数组的维度小,则表达式的结果将是给定索引处的内层数组,
例如 arr[1][2];表示:通过索引1得到一个最外层数组,它含有10个数组,通过索引2获得其中一个含有10个int的数组。
5、多维数组的两种遍历方式:嵌套的for循环和范围for语句。
(注意,在使用range for遍历多维数组的时候, auto row : ia 中的row会转变为指针类型,导致内层循环不合法,
因此,即使是不改变数组的值,也应当写成 const auto &row : ia,也就是说,要使用范围for语句处理多维数组,除了最内层的循环外,都要用auto &)
练习 3.41
#include<vector>
using std::vector;
#include<iterator>
using std::begin;
using std::end;
int main()
{
int int_arr[] = {, , , };
vector<int> ivec(begin(int_arr), end(int_arr));
return ;
}
练习 3.42
#include<vector>
using std::vector;
#include<iterator>
using std::begin;
using std::end;
#include<iostream>
int main()
{
vector<int> vector{, , , };
int arr[];
int i = ;
for (int x : vector) {
arr[i++] = x;
}
// 测试
for (int x : arr) {
std::cout << x << std::endl;
}
return ;
}
c++第二十天的更多相关文章
- javaSE第二十天
第二十天 254 1:递归(理解) 254 (1)方法定义中调用方法本身的现象 254 (2)递归的注意事项 255 (3)递归的案例: 255 A:递归求阶乘 2 ...
- IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★
IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...
- Python第二十天 shutil 模块 zipfile tarfile 模块
Python第二十天 shutil 模块 zipfile tarfile 模块 os文件的操作还应该包含移动 复制 打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块shut ...
- OCM_第二十天课程:Section9 —》Data Guard _ DATA GUARD 搭建/DATA GUARD 管理
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- 孤荷凌寒自学python第二十天python的匿名函数与偏函数
孤荷凌寒自学python第二十天python的匿名函数与偏函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python为使函数的使用更加方便高效,可以使用两种特殊的函数简化语句书写. 一 ...
- Python 学习第二十天 django知识
一,django models 1,django ORM获取后台数据的方式,总共有三种 (1)v1 = models.Business.objects.all() 返回值为QuerySet类型,内 ...
- java分享第二十天(build.xml的语法及写法)
通常情况下,Ant构建文件build.xml应该在项目的基础目录.可以自由使用其他文件名或将构建文件中其他位置.在本练习中,创建一个名为build.xml 在电脑的任何地方的文件. <?xml ...
- python第二十天-----Django补充
学习python已经20天了啊,从一个不萌萌哒的战5渣升级到了一个萌萌哒的战5渣 1.分页(这是一个很通用的模块,不论在任何框架里都可以使用哦) class Page(object): def __i ...
- iOS 进阶 第二十天(0520)
0520 -KVO 如下图所示:(面试可能会问到,你就按照下面的说) 注意:NSString类型的成员变量用set方法时,要记得用copy,至于为什么,知道这么用就行了.如下图:
- 第三百零八至三百二十天 how can I 坚持
十三天..2月4号至2月16号,好快,假期还没开始就结束了.一一回忆下. 2月4号,腊月二十六,最后一天上班,没多大事,好像是玩了一天,东月回家,貌似路上好折腾,晚上D401,和她聊了一路,也聊了好多 ...
随机推荐
- 泛型的几种类型以及初识winform
今天学习的可以分为两类吧,但是学习的都是比较抽象的,不太容易掌握吧.首先我们大部分时间学习了泛型,泛型的委托,泛型接口以及枚举器,迭代器,扩展方法:最后简单的认识了webform,实现了一个简单的功能 ...
- ubuntu下Eclipse创建Django项目
(注:部分过程可能需要FQ) Eclipse版本:Mars.x 点击help->Eclipse Marketplace,搜索“PyDev”并下载安装. 然后选择window->prefer ...
- 详谈redis优化配置和redis.conf
1. Redis.conf 配置参数: #是否作为守护进程运行 daemonize yes #如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid pidfile redi ...
- 进程保护--CrossThreadFlags标志位
原理: 1. 将进程的所有线程的线程CrossThreadFlags标志位设置成Terminated或者System. 效果:任务管理器,WSYSCheck,ICESWORD无法结束进程.. 但PCH ...
- Android SharedPreferences保存第一次的信息
private void setHomeTimeZone() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPrefere ...
- jQuery --- 利用a标签的download属性下载文件!
最近遇到一个项目,需要有点击下载文件的功能. 由于文件格式是多种的,对于 rar / zip / rtf / doc / xlsx / jpg等. 点击下载有的是直接跳转到后进行下载,但有的是打开进行 ...
- rest_framework之版本详解 04
访问不同版本,给不同内容. rest规范:版本要么放url上:要么放请求头里. 1.原来的url的版本都写死了.只能写v1 from django.conf.urls import url from ...
- Oracle数据库PL/SQL Developer查询结果显示问号乱码的解决方法
PL SQL Developer,查询结果中的中文变成了一堆问号,SQL语句中的中文被提示invalid character,不能识别. 解决方法: 执行,select userenv('langua ...
- SmartSprites 智能批量合并 CSS 雪碧图
做前端的稍微有点经验的都知道 可以通过合并小图片 来减少请求数, 最早可能都是通过 fw.ps 等工具来手动合并, 这种方式的缺点就不吐槽了,效率低,可维护性差 等等 .... 一些很厉害的人,往往会 ...
- (4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)
(4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务) 1.概念:隐式事务,显式事务,自动提交事务 2.操作:如何设置事务模式 3.存储过程中的事务 XACT_ABORT 1 ...