`
oolala
  • 浏览: 99948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
09c341db-7f05-3f2b-a572-9ee69a5d8a77
unix环境高级编程
浏览量:21718
社区版块
存档分类
最新评论

c++ primer 3 标准库类型

    博客分类:
  • c++
 
阅读更多
c++标准库定义了高级的抽象数据类型(abstract data type)
 
二种最重要的标准库类型string vector
 
1、命令空间的using声明
using声明可以在不需要加前缀namespace_name::的情况下访问命令空间中的名字
using namespace::name
 
使用了using声明,我们就可以直接引用名字,而不需要再引用该名字的命令空间
 
一个using声明一次只能作用于一个命名空间成员,using声明可用来明确指定在程序中用到的命令空间中的名字,如果希望使用std中的几个名字,
则必须为要用到的每个名字都提供一个using声明。
 
 
2、标准库stirng类型
#include <string>
using std::string
 
string对象的定义和初始化
string s1;
string s2(s1);
string s3("value");
string s4(n,'c');
 
String 对象的读写
#include <iostream>
#include <string>
 
using namespace std;
using std::string;
 
int main(void)
{
cout << "using" << endl;
string in;
cin >> in;
 
cout << "输入的字符" + in << endl;
 
string s1("admin");
cout << s1 << endl;
return 0;
}
 
读入未知数目的string对象
#include <iostream>
#include <string>
 
using namespace std;
using std::string;
 
/************************************************************************/
/* 读入未知数目的string 对象    */
/************************************************************************/
int main(void)
{
string word;
while(cin >> word) {
cout << word << endl;
}
return 0;
}
 
用getline读取整行文本
#include <iostream>
#include <string>
 
using namespace std;
using std::string;
 
int main(void)
{
string word;
while(getline(cin,word))
{
cout << word << endl;
}
return 0;
}
 
 
 
string对象的操作
s.empty
s.size()
s[n]
s1 + s2
s1 = s2
!= ,< ,<= ,>=
 
 
string empty size
#include <iostream>
#include <string>
 
using namespace std;
using std::string;
 
int main()
{
string s1("the expense of spring");
cout << "the size of" << s1 << "is" << s1.size() << endl;
cout << s1.empty() << endl;
return 0;
}
 
 
string 关系操作符
 
从string对象获取字符
 
#include <iostream>
#include <string>
 
using namespace std;
using std::string;
 
int main(void)
{
string str("stradmin");
for(int i=0;i<str.size();i++)
{
cout << str[i] <<endl;
str[i] = '*';
}
cout << str << endl;
return 0;
}
 
 

3.3标准vector类型
 
创建确定个数元素
#include <string>
#include <vector>
#include <iostream>
 
using namespace std;
using std::string;
using std::vector;
 
int main(void)
{
vector<int> ivec1;
vector<int> ivec2(ivec1);
vector<string> ivec3("admin");
 
vector<int> ivec4(10,-1);
vector<string> ivec5(10,"hi");
}
 
 
值初始化
如果没有指定元素初始化式,那么标准库将自行提供一个元素初始值进行值初始化。
 
vector对象的操作
v.empty()
v.size()
v.push_back(t)
v[n]
v1 = v2
v1 == v2
!= <, <=,>,>=
 
#include <iostream>
#include <vector>
#include <string>
 
using namespace std;
using std::string;
using std::vector;
 
int main()
{
string word;
vector<string> text;
 
text.push_back("admin");
text.push_back("root");
text.push_back("public");
 
for(vector<int>::size_type i = 0;i<text.size();i++)
{
cout<< text[i] << endl;
}
return 0;
}
 
 

3.4迭代器
除了使用下标来访问vector对象的元素外,标准库还提供了另一种访问元素的方法:迭代器
现代C++程序更倾向于使用迭代器而不是下标操作访问容器
 
容器的iterator类型
vector<int>::iterator iter;
 
begin
vector<int>::iterator iter =  ivec.begin();
如果容器中有元素的话,begin返回的迭代器指向第一个元素
把iter初始化为由名为begin的vector操作返回的值
 
end
返回迭代器指向vector的末端元素的下一个
 
vector迭代器的自增和解引用运算
迭代器类型可使用解引用操作符(*),来访问迭代器所指向的元素
*iter = 0;   *iter 和ivec[0]就是指向同一个元素
 
 
iterator 示例:
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
using std::vector;
using std::string;
 
int main()
{
vector<string> v1;
v1.push_back("stdio");
v1.push_back("types.h");
v1.push_back("net.h");
 
for(vector<string>::iterator iter = v1.begin(); iter != v1.end(); iter++ )
{
cout << *iter << endl;
}
return 0;
}
 

 

分享到:
评论

相关推荐

    C++ Primer第四版【中文高清扫描版】.pdf

    第3章 标准库类型 67 3.1 命名空间的using声明 68 3.2 标准库string类型 70 3.2.1 string对象的定义和初始化 70 3.2.2 String对象的读写 71 3.2.3 string对象的操作 72 3.2.4 string对象中字符的处理 76 3.3 标准库...

    C++ Primer习题集(第五版)

    第17章标准库特殊设施............................................... 458 练习17.1 练 习17.39 第18章用于大型程序的工具............................................483 练习18.1 练 习18.30 第19章特殊工具与...

    c++ primer 4th 中英文对照版

    C++ Primer, Fourth Edition, provides a comprehensive introduction to the C++ language....随着标准库的广泛可用,我们现在能够比以往任何时候更高效地学习和使用 C++。本书这一版本充分体现了这一点。

    C++primer 课后题答案

    第三章 标准库类型 13 第四章 数组和指针 21 第五章 表达式 31 第六章 语句 37 第七章 函数 37 第八章 标准IO库 37 第九章 顺序容器 43 第十章 关联容器 60 第十一章 泛型算法 75 第十二章 类和数据抽象 86 第十三章...

    非常经典的c++ primer视频教程6-10

    第3章 标准库类型 3.1 命名空间的using声明 3.2 标准库string类型 3.2.1 string对象的定义和初始化 3.2.2 String对象的读写 3.2.3 string对象的操作 3.2.4 string对象中字符的处理 3.3 标准库vector类型 ...

    C++Primer视频(初级)下载地址

    第3章标准库string类型(3) 23.第3章标准库vector类型 24.第3章重点习题解答 25.第3章迭代器简介 26.二进制和十六进制 27.第3章标准库bitset类型 28.标准库bitset应用实例 29.第4章数组 30.第4章指针...

    C++ Primer中文版(第4版)(中英文对照版)

    书中很早就开始介绍标准库,示例也已经重新改写,充分利用了标准库设施。我们也对语言主题叙述的先后次序进行了重新编排,使讲解更加流畅。 In addition to restructuring the text, we have incorporated several ...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

    C++ Primer中文版(第5版)[203M]分3个压缩包 本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数...

    C++Primer 中文第四版(pdf高清完整版).

    本书全面介绍了 C++ 语言。作为一本入门书(Primer),它以教程的形式 对 C++ 语言进行清晰的讲解,并...随着标准库的广 泛可用,我们现在能够比以往任何时候更高效地学习和使用 C++。本书这一版本 充分体现了这一点。

    C++Primer中文版(第4版).part1

    高清中文版,共两部分。 作为目前业界广泛使用的编程语言,C++可谓包罗万象...书中很早就开始介绍标准库,示例也已经重新改写,充分利用了标准库设施。我们也对语言主题叙述的先后次序进行了重新编排,使讲解更加流畅。

    C++Primer(第5版 )中文版(美)李普曼等著.part2.rar

    C++ Primer中文版(第5版)[203M]分3个压缩包 本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数...

    C++Primer 入门书

    本书全面介绍了 C++ 语言。作为一本入门书(Primer),它以教程的形式 对 C++ 语言进行清晰的讲解,...随着标准库的广 泛可用,我们现在能够比以往任何时候更高效地学习和使用 C++。本书这一版本 充分体现了这一点。

    c++ primer 第5版(李普曼) part3

    例如,在介绍和使用内置的算术和数组类型时,我们还连同介绍和使用标准库中的类型string和vector。使用这些类型的程序更易写、易理解且更少出错。  太多时候,标准库被当作一种“高级”话题来讲授。很多教材不使用...

    C++ Primer 3rd Edition 中文完美版

    上进行操作的一组可扩展的泛型算法generic algorithm 都是这个新标准库的特性本书 不但包括了许多新的资料而且还阐述了怎样在C++中进行程序设计的新的思考方法简而 言之实际上不但C++已经被重新创造本书第三版也是...

    C++ primer 第4版 原书+习题解答+源码 清晰pdf

     第3章 标准库类型  3.1 命名空间的using声明  3.2 标准库string类型  3.3 标准库vector类型  3.4 迭代器简介  3.5 标准库bitset类型  小结  术语  第4章 数组和指针  4.1 数组  4.2 指针的...

    c++ primer 中的第一个例子

    C++primer 中的,一个例子标准库iostream 的COUT CIN

    CppPrimer_标准库_vector_类型.rar_C++_vector

    C++ vector使用介绍,以及各种编程练习,还有讲解

    C++primer第四版清晰版电子书及全部答案

    对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书...书中很早就开始介绍标准库,示例也已经重新改写,充分利用了标准库设施。我们也对语言主题叙述的先后次序进行了重新编排,使讲解更加流畅

Global site tag (gtag.js) - Google Analytics