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;
}
|
相关推荐
4. **标准库的使用**:书中会介绍如何使用C++标准库,包括容器(如vector、list、set、map)、迭代器、算法(如排序、查找)、文件输入输出(fstream)等。通过这些习题,读者可以了解如何有效利用标准库提高编程...
6. **标准库**:C++标准库提供了大量的容器(如vector、list、map)、算法和输入/输出流。学习如何有效地利用这些工具可以显著提高编程效率。 7. **异常处理**:C++提供了异常处理机制,用于捕获和处理运行时错误。...
6. C++标准库:文件提到了C++标准库类型,如标准输入输出库,标准库类型在C++程序中提供了一系列基础的工具和功能,如输入输出流、标准容器、泛型算法等。 7. 关键概念理解:文件内容中还包含了对一些关键概念的...
2. 标准库类型的使用,包括string、vector、bitset等容器的使用和操作。 3. C++的数组和指针操作,以及如何处理C风格字符串和多维数组。 4. 表达式中涉及到的算术、关系、逻辑、赋值、自增自减等操作符的使用,以及...
3. **标准库**:详细介绍C++标准库中的容器(如vector、list、set、map等)、算法(如排序、查找)、迭代器以及字符串的使用。 4. **指针与引用**:解释了指针和引用的概念,如何通过它们操作内存和实现高效编程。 ...
标准库是C++编程的重要组成部分,书中详细介绍了STL(Standard Template Library,标准模板库),包括容器(如vector、list、set等)、迭代器、算法和函数对象。STL提供了一套高效、通用的编程组件,极大地方便了C++...
7. **STL(Standard Template Library)**:C++标准库中的模板容器、算法和迭代器等组件,提供了高效且易用的数据结构和算法。 8. **异常处理**:C++支持异常处理机制,通过try、catch和throw关键字来捕获和处理...
### C++ Primer 类型转化 #### 一、类型转换概述 在C++中,类型转换是一种常见的编程技术,用于将一种数据类型转换为另一种数据类型。这种转换可以在编译时或运行时发生,并且可以是隐式的(自动进行)或显式的...
《C++ Primer》是有名的C++编程教材,其第五版(5th Edition)深入浅出地介绍了C++语言的基础知识以及C++11新标准的特性。这本书由Lippman、Lajoie和 Moo三位作者共同编写,是C++初学者和进阶者的重要参考书籍。 1....
容器是C++标准库中的重要组成部分,如std::vector、std::list、std::set、std::map等,它们提供了高效的数据存储和操作方式。书中详细介绍了这些容器的使用,以及迭代器的概念,这使得程序员可以灵活地遍历和修改...
C++的标准模板库是其强大功能的一部分,包括容器(如vector、list、set)、迭代器、算法和函数对象。书中会详细介绍如何利用STL进行高效编程。 6. **指针与引用** C++中的指针和引用是其独特之处,它们提供了对...
通过这些练习,读者可以进一步熟悉C++编程的各个方面,包括但不限于基本语句、数据类型、控制结构、函数、类和标准库的使用。 此外,习题解答中所使用的开发环境为Visual Studio 2015,这是微软推出的一款集成开发...
此外,描述中提及的“真正的C++primer习题集”,这可能表明该习题集是针对教材内容设计的,目的是帮助学生消化和练习书中的理论知识。通过解决这些习题,学生可以加深对C++语言特性的理解,包括类和对象、动态内存...
书中从基础的数据类型和控制结构开始讲起,逐步深入到函数、数组和指针的高级用法,接着探讨面向对象编程的基本概念,包括类和对象、继承与多态等,最后对C++的模板编程、异常处理和标准库等高级特性进行了详细说明...
C++ Primer中文版(第5版)[203M]分3个压缩包 本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数...
6. **STL(标准模板库)**:STL是C++库的一部分,包含容器(如vector、list、set等)、迭代器、算法和函数对象。使用STL可以提高代码的效率和可读性。 7. **异常处理**:C++提供了一种结构化的错误处理机制——异常...
3. 第三章标准库类型:介绍C++标准库中的容器,如`std::string`用于处理字符串,`std::complex`用于复数运算,以及`std::stringstream`用于文本流处理。 4. 第四章数组和指针:讨论一维和多维数组,以及指针的概念...
《C++ Primer 3完美中文版及题解》是一份全面深入学习C++编程语言的资源,涵盖了C++ Primer 第三版的详细内容,并且配有题解,旨在为学习者提供一套完整的学习流程。这份资源包含两个核心部分:C++ Primer 3rd ...