猎豹网校C++ Primer学习笔记

1、头文件(15th课)

大型项目开发,要有很多头文件。只能写声明,不能定义(类定义和常量定义可以)。

自己新建头文件(类定义,外部变量声明,函数声明)。源文件包含对应的头文件。

头文件里写类的声明,源文件里写类的定义,类的所有成员。

为避免预处理重复拷贝,头文件保护符。防止多重包含。

2、命名空间(16th)

注意:头文件里不能使用using声明,用的话直接写全。

 3、标准库string类型(17th)字符容器

 

 using std::string;

si种初始化方法:()小括号是调用string对象的构造函数。

先初始化后再赋值,别这么写。

 

 4、cin读入特点,遇空格暂停

cin>>name,也可以忽略掉前面的格式,如换行、空格、Tab。

遇空格暂停,但空格还在输入流里。下一次读取时,再次对前段格式处理,忽略空格。

改为使用getline(cin,name);

//在VS中使用cin>>会闪退,原因未知,用getline就正常。

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string name;
    cout <<"input sth" << endl;
    //cin>>name;
    getline(cin,name);
    cout << name << endl;
    getchar();
    return 0;
}

 需要在cin>>后面加上cin.ignore():

cin>>name;
cin.ignore();

5、循环读入

循环读入,一次读入一行。

Win+z结束。输入重定向<。

一次读入一个单词,循环读入。

 6、string类型的操作。.size(),.empty()

7、字符串拼接操作,+号两边必须有一个是string类型的!

循环读入并拼接:

8、string下标操作

 

循环操作string

使用C中的函数:但要加上头文件#include<cctype>

实现忽略标点符号的输出。

9、vector动态数组、类模板

 #include<vector>;using namespace std;

可以使用下标索引。.push_back()尾部加数据。

vector<int> ivec;

初始为空,不可以通过下标操作添加数据。(1.初始就给长度;2.先cin>>temp,后再push)

vector<int> ivec(10);

其下标索引类型与string相似,size_type。

vector<int>::size_type index=1;

 循环读入数据进vector

计算首尾两个数之和:

 

练习代码,这种循环读入形式需以ctr+Z结束。

#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>

using namespace std;
int main()
{
    cout<<"Input sth.:"<<endl;
    string str;
    vector<string> ivec;
    while(cin>>str){
        ivec.push_back(str);
    }
    //cin.ignore();
    //ivec.push_back(str);
    cout<<ivec[0]<<endl;
    getchar();
    return 0;
}

 

 循环读入单词并输出:判断长度要用.size()

#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>

using namespace std;
int main()
{
    cout<<"Input sth.:"<<endl;
    string str;
    vector<string> ivec;
    while(cin>>str){
        ivec.push_back(str);
    }
//    for(vector<string>::size_type ix=0;ix!=sizeof(ivec);ix++)
    for(vector<string>::size_type ix=0;ix!=ivec.size();ix++)
    {
        cout<<ivec[ix]<<endl;
    }
    cout<<"sizeof:"<<sizeof(ivec)<<endl;
    cout<<".size():"<<ivec.size()<<endl;
    //cin.ignore();
    //ivec.push_back(str);
    getchar();
    return 0;
}
;
View Code

 10、iterator迭代器,不用下标遍历

很多容器没法用下标,但所有容器都有迭代器。

迭代器实际上是一个指针,通过解引用(*)修改数据和读取数据。

常迭代器:

 11、四个二进制一组即16进制

四个一组后,权值向前递次乘16。

十六进制数,可小写可大写。后面接H或前面加0x。

一个字节=8位二进制。

12、bitset<num>处理二进制

头文件!

下标计数为倒序,从0开始。

初始化,可以使用字符串。

也可以使用键盘输入来初始化:

.any();判断是否有1

.none();判断是否全是0

.count();计数1

.size()-.count();计数0

set(index)变成1,reset()把某位变成0,flip()翻转。

二进制变成十进制:

 13、bitset应用-埃拉托斯特尼_筛法-寻找质数

先全初始化为1,然后从头开始向后筛选,遇倍数则置0。.count()可以统计质数个数,貌似应该-1。

然后循环输出即可:

 

改进1,只筛到根号即可。改进2,从平方处开始筛。

#include<cmath>

500万都没问题。

 

转载于:https://www.cnblogs.com/wxl845235800/p/11396323.html

数据结构与算法_C++[MP4] 猎豹网校VC++ MFC 经典教程 基础篇[MP4] 猎豹网校Java 零基础入门[MP4] 猎豹网校 游戏编程快速入门[MP4] 猎豹网校 网店赢家淘宝网新手开店[MP4] 猎豹网校 透测测试 系统安全测试[MP4] 猎豹网校 淘宝卖家网店美工[MP4] 猎豹网校 搜索引擎搜索技巧[MP4] 猎豹网校 数据结构与算法_Java语言[MP4] 猎豹网校 数据结构与算法_C语言[MP4] 猎豹网校 软件测试快速入门[MP4] 猎豹网校 猎豹网校数据结构与算法_C#语言[MP4] 猎豹网校 快学快用 Excel 应用大全 中级教程[MP4] 猎豹网校 快学快用 Excel 应用大全 高级教程[MP4] 猎豹网校 快学快用 Excel 应用大全 初级教程[MP4] 猎豹网校 快速掌握_会声会影_标准[MP4] 猎豹网校 快速掌握 QTP 测试工具[MP4] 猎豹网校 快速掌握 Python 学习手册[MP4] 猎豹网校 快速掌握 Python 系统管理[MP4] 猎豹网校 快速掌握 Python 基础教程[MP4] 猎豹网校 快速掌握 Python Django 1.5 网页开发[MP4] 猎豹网校 快速掌握 MATLAB 经典教程[MP4] 猎豹网校 快速掌握 LoadRunner 测试工具[MP4] 猎豹网校 快速掌握 C# 学习指南[MP4] 猎豹网校 快速掌握 Access VBA[MP4] 猎豹网校 快速学会_Windows 命令行批处理脚本[MP4] 猎豹网校 快速学会_Shell 脚本经典教程[MP4] 猎豹网校 快速学会 VB.NET 经典教程[MP4] 猎豹网校 快速学会 TclTk 开发指南[MP4] 猎豹网校 快速学会 Perl 实用教程[MP4] 猎豹网校 快速学会 Perl 入门经典[MP4] 猎豹网校 快速通过_计算机二级_公共基础知识[MP4] 猎豹网校 快速通过_计算机二级_VFP[MP4] 猎豹网校 快速通过_计算机二级_VB[MP4] 猎豹网校 快速通过_计算机二级_Java[MP4] 猎豹网校 快速通过_计算机二级_C语言[MP4] 猎豹网校 快速通过_计算机二级_C++[MP4] 猎豹网校 黑客攻防 网站攻防修炼[MP4] 猎豹网校 黑客攻防 木马揭秘[MP4] 猎豹网校 黑客攻防 蜜罐[MP4] 猎豹网校 高级软件测试分析师[MP4] 猎豹网校 大家可以学的C语言[MP4] 猎豹网校 Windows程序设计 初级课程(二)[MP4] 攻防[MP4] 北风网 C++反汇编基础:Win32平台(逆向实例、动态调试实例)[MP4] 安卓 Android 游戏编程入门(上)[MP4] Word排版高级技巧[MP4] Word 零基础入门[MP4] Windows程序设计 初级课程(一)[MP4] Windows Api学习指南[MP4] VisualSVN Subversion[MP4] Visual C# 入门经典[MP4] VC++ MFC快速提高[MP4] VC++ MFC快速入门[MP4] VC++ MFC快速进阶[MP4] Unity 3D 游戏开发经典教程[MP4] Unity 3D 游戏高级教程[MP4] SQL Server 数据库[MP4] Silverlight 经典教程[MP4] Qt 中级课程 (上)[MP4] Python系统管理[MP4] PS抠图秘技[MP4] ppyygg PowerPoint(PPT) 达人进阶[MP4] PHP基础教程[MP4] PHP和MySQL Web开发 高级教程[MP4] PHP和MySQL Web开发 初级教程[MP4] PHP 程序设计[MP4] PHP Zend 开发实战[MP4] PHP Ajax 经典教程[MP4] Oracle 数据库[MP4] MySQL 数据库[MP4] Lua 经典教程[MP4] Linux 轻松入门[MP4] Linux C 基础教程[MP4] JSP 实用教程[MP4] jQuery 快速入门[MP4] Java设计模式[MP4] JavaScript 经典教程[MP4] Java 编程思想 中级教程[MP4] Java 编程思想 高级教程[MP4] Java 编程思想 初级教程[MP4] HTML网页设计[MP4] Flash CS5 经典教程[MP4] Flash ActionScript 经典教程MP4] Flash ActionScript 基础教程MP4] Excel 零基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值