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

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 习题解答(第4版)--绝对完整版

    4. **标准库的使用**:书中会介绍如何使用C++标准库,包括容器(如vector、list、set、map)、迭代器、算法(如排序、查找)、文件输入输出(fstream)等。通过这些习题,读者可以了解如何有效利用标准库提高编程...

    c++ primer plus 答案 c++ primer plus 答案

    6. **标准库**:C++标准库提供了大量的容器(如vector、list、map)、算法和输入/输出流。学习如何有效地利用这些工具可以显著提高编程效率。 7. **异常处理**:C++提供了异常处理机制,用于捕获和处理运行时错误。...

    C++Primer课后习题解答完整版.pdf

    6. C++标准库:文件提到了C++标准库类型,如标准输入输出库,标准库类型在C++程序中提供了一系列基础的工具和功能,如输入输出流、标准容器、泛型算法等。 7. 关键概念理解:文件内容中还包含了对一些关键概念的...

    C++ primer中文版-高清-带目录

    3. **标准库**:详细介绍C++标准库中的容器(如vector、list、set、map等)、算法(如排序、查找)、迭代器以及字符串的使用。 4. **指针与引用**:解释了指针和引用的概念,如何通过它们操作内存和实现高效编程。 ...

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

    2. 标准库类型的使用,包括string、vector、bitset等容器的使用和操作。 3. C++的数组和指针操作,以及如何处理C风格字符串和多维数组。 4. 表达式中涉及到的算术、关系、逻辑、赋值、自增自减等操作符的使用,以及...

    C++ Primer 5th 英文高清版 (带完整目录)

    标准库是C++编程的重要组成部分,书中详细介绍了STL(Standard Template Library,标准模板库),包括容器(如vector、list、set等)、迭代器、算法和函数对象。STL提供了一套高效、通用的编程组件,极大地方便了C++...

    C++primer第四版源代码

    7. **STL(Standard Template Library)**:C++标准库中的模板容器、算法和迭代器等组件,提供了高效且易用的数据结构和算法。 8. **异常处理**:C++支持异常处理机制,通过try、catch和throw关键字来捕获和处理...

    C++Primer 类型转化

    ### C++ Primer 类型转化 #### 一、类型转换概述 在C++中,类型转换是一种常见的编程技术,用于将一种数据类型转换为另一种数据类型。这种转换可以在编译时或运行时发生,并且可以是隐式的(自动进行)或显式的...

    c++ primer 第5版 英文版 原版精美排版 mobi格式 kindle直读

    C++的标准模板库是其强大功能的一部分,包括容器(如vector、list、set)、迭代器、算法和函数对象。书中会详细介绍如何利用STL进行高效编程。 6. **指针与引用** C++中的指针和引用是其独特之处,它们提供了对...

    c++ primer有目录pdf第五版本5th

    《C++ Primer》是有名的C++编程教材,其第五版(5th Edition)深入浅出地介绍了C++语言的基础知识以及C++11新标准的特性。这本书由Lippman、Lajoie和 Moo三位作者共同编写,是C++初学者和进阶者的重要参考书籍。 1....

    C++ Primer 第五版 课后习题答案(高清无水印PDF)

    通过这些练习,读者可以进一步熟悉C++编程的各个方面,包括但不限于基本语句、数据类型、控制结构、函数、类和标准库的使用。 此外,习题解答中所使用的开发环境为Visual Studio 2015,这是微软推出的一款集成开发...

    C++ Primer(Fifth Edition)(英文版+中文版)

    容器是C++标准库中的重要组成部分,如std::vector、std::list、std::set、std::map等,它们提供了高效的数据存储和操作方式。书中详细介绍了这些容器的使用,以及迭代器的概念,这使得程序员可以灵活地遍历和修改...

    c++primer第五版习题答案(第12章)

    此外,描述中提及的“真正的C++primer习题集”,这可能表明该习题集是针对教材内容设计的,目的是帮助学生消化和练习书中的理论知识。通过解决这些习题,学生可以加深对C++语言特性的理解,包括类和对象、动态内存...

    C++primer第五版英文版

    书中从基础的数据类型和控制结构开始讲起,逐步深入到函数、数组和指针的高级用法,接着探讨面向对象编程的基本概念,包括类和对象、继承与多态等,最后对C++的模板编程、异常处理和标准库等高级特性进行了详细说明...

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

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

    C++ Primer(第5版)_带书签_高清完整版

    6. **STL(标准模板库)**:STL是C++库的一部分,包含容器(如vector、list、set等)、迭代器、算法和函数对象。使用STL可以提高代码的效率和可读性。 7. **异常处理**:C++提供了一种结构化的错误处理机制——异常...

    C++Primer(第4版)-课后习题答案.pdf

    3. 第三章标准库类型:介绍C++标准库中的容器,如`std::string`用于处理字符串,`std::complex`用于复数运算,以及`std::stringstream`用于文本流处理。 4. 第四章数组和指针:讨论一维和多维数组,以及指针的概念...

Global site tag (gtag.js) - Google Analytics