c++ 不清楚这段代是什么意思......

来源:百度知道 编辑:UC知道 时间:2024/07/02 06:18:20
//=================================
// f0617.cpp
// 清点单词数
//=================================
#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>
#include<map>
using namespace std;
typedef multimap<int,int> Mmap;

int main()
{
ifstream in("abc.txt");
vector<string> abc;
//abc.reserve(1100);
Mmap nums;
int n=0;
for(string s; getline(in,s); )
{
istringstream sin(s);
int num=0;
for(string t; sin>>t; num++);
if(num) {
nums.insert(Mmap::value_type(num, n++));
abc.push_back(s);
}
}
for(Mmap::iterator it=nums.begin(); it!=nums.end(); ++it)
cout<<abc[it->second]<<endl;
}

map是什么? 代码中,哪里用到它? 各是什么意思? 不用typedef下是怎样创建它? abc.re

这里是用的C++中的STL,map主要的作用是建立一一对应的关系。例如姓名和学好是一一对应的。。主要应用在查找方面。例如你可以用学号查找到姓名 或根据姓名查找学号。。他们都是一一对应的。。

代码应用:
nums.insert(Mmap::value_type(num, n++));
向map中加入数据
for(Mmap::iterator it=nums.begin(); it!=nums.end(); ++it)
cout<<abc[it->second]<<endl;
输出数据

typedef是一种类型的定义。。定义后 可以像使用 int ,double 一样使用

abc是由vector<string> abc; 定义的

abc。reserve() 设置Vector最小的元素容纳数量
也属于c++中的stl的一种。。
reserve是vector的一种方法

要了解清楚还要好好看看 C++的书 和 对STL的讲解。。

#include<map>
这个头文件里。

它是标准模板类库(STL)的其中一个类。
你上网学一下STL

map是一种关联式容器,包含“关键字/值”对
multimap和它几乎相同,但可以关键字重复.
有很多用处,比如把一群人按姓氏分类,关键字为姓,值为名,这样就可以很方便的查找相同姓氏的人群.
abc.reserve(1100);
abc是vector容器,一般用来代替数组使用,它更加方便,安全,可以变长,这句话的意思是这个abc中最少可以放1100个元素,而不用重新分配内存空间.

C++primer是一本不错的选择!