标准库概览
来源:互联网 发布:哪里可以下载外汇数据 编辑:程序博客网 时间:2024/05/31 13:15
1.标准库(Standard Template Library)
C++中泛形编程的基础
2.Hello,world!
最小的C++程序是
int main() { }
// Disassmable code.
00401010 push ebp
00401011 mov ebp,esp
00401013 sub esp,40h
00401016 push ebx
00401017 push esi
00401018 push edi
00401019 lea edi,[ebp-40h]
0040101C mov ecx,10h
00401021 mov eax,0CCCCCCCCh
00401026 rep stos dword ptr [edi]
00401028 pop edi
00401029 pop esi
0040102A pop ebx
0040102B mov esp,ebp
0040102D pop ebp
0040102E ret
#include <iostream>
Int main()
{
Std::cout<<”Hello,world!/n”;
}
// Disassmable code.
1: #include <iostream>
2:
3: int main()
4: {
00401360 push ebp
00401361 mov ebp,esp
00401363 sub esp,40h
00401366 push ebx
00401367 push esi
00401368 push edi
00401369 lea edi,[ebp-40h]
0040136C mov ecx,10h
00401371 mov eax,0CCCCCCCCh
00401376 rep stos dword ptr [edi]
5: std::cout<<"Hello,world!/n";
00401378 push offset string "Hello,world!/n" (0042f01c)
0040137D push offset std::cout (00433ea0)
00401382 call @ILT+140(std::operator<<) (00401091)
00401387 add esp,8
6: }
0040138A pop edi
0040138B pop esi
0040138C pop ebx
0040138D add esp,40h
00401390 cmp ebp,esp
00401392 call __chkesp (00408d80)
00401397 mov esp,ebp
00401399 pop ebp
0040139A ret
3.标准容器
一个以保存一批对象为主要用途的类通常被称为一个容器。
[a]向量(vector)
Vector是一种能赋值的简单对象。
Example:
void f(vector<Entry>& v)
{
vector<Entry> v2=phone_book;
v=v2;
// …
}
对vector赋值涉及到复制其中的所有元素。当向量里存在许多元素时,这种看起来无害的赋值和初始化的代价也可能很高。
[b]表(list)
[c]映射(map)
4.标准库算法
5.迭代器
[a]迭代器和I/O
[1] ostream_iterator<string> oo(cout);
istream_iterator<string> ii(cin);
istream_iterator<string> eos; //表示输入的结束。
[2] int main()
{
*oo=”Hello,”; // Meaning “ cout<<”Hello,”
++oo;
*oo=”world!/n”;
}
[3]从输入流读入Hello,world!。而后再次将它写出去:
int main()
{
string s1=*ii;
++i;
string s2=*ii;
cout<<s1<<’ ‘<<s2<<”/n”;
}
实际中,istream_iterator和ostream_iterator并不是想提供人们直接使用的,它们主要是为了给算法提供参数。
[4]Function: 读入一个文件,对所读的东西排序,去掉重复,最后将结果写入另一个文件。
int main()
{
string from, to;
cin>>from>>to; //取得源文件名和目标文件名;
ifstream is(from.c_str()); //输入流(c_str());
istream_iterator<string> ii(is); //流的输入迭代器;
istream_iterator<string> eos; //输入的哨兵;
vector<string> b(ii,eos); //b是一个向量,用输入进行初始化;
sort(b.begin(),b.end()); //对缓冲区排序;
ofstream os(to.c_str()); //输出流;
ostream_iterator<string> oo(os,"/n"); //流的输出迭代器;
unique_copy(b.begin(),b.end(),oo); //从缓冲区复制到输出;
//并去掉重复的值
return !is.eof()||!os; //返回错误信息;
}
6.遍历和谓词
用于控制算法的函数被称为谓词。
/*************************************End*************************************/
- 标准库概览
- 标准库概览
- python标准库概览
- python标准库概览
- C++ 标准库概览
- C++ 标准库概览
- C++ 标准库概览
- Python3 标准库概览
- Python3 标准库概览
- C++ Tips: 标准库概览
- GO语言标准库概览
- 11、python标准库概览
- C++程序设计语言--第三章:标准库概览
- 20140404 TCPL 第三章 标准库概览
- Web标准概览
- 标准C++ 库函数 概览
- HEVC标准概览
- HEVC标准概览
- Linux Tips 之 狸猫换太子:LD_PRELOAD
- GB2312汉字编码字符集
- BIG-5字符集
- GBK汉字内码扩展规范
- 致读者
- 标准库概览
- 谨以此文献给才毕业一两年的朋友 (选自同事信件)
- Tomcat引擎配置
- 从SQL Server数据库提取图片并显示在DataGrid【孟宪会之精彩世界】
- [幽默网文]高考作文妙语集锦
- Oracle安装(linux)小结(转载)来自:http://www.phpx.com/cma2896.html
- 引文:WebLogic中的生成图片问题的解决办法
- 小程序
- 西装的学问(zt)