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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 不清楚这段代是啥意思......相关的知识,希望对你有一定的参考价值。

//=================================
// 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.reserve(1100);又是什么意思?

此题来自钱能C++第二版...

这里是用的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的讲解。。
参考技术A #include<map>
这个头文件里。

它是标准模板类库(STL)的其中一个类。
你上网学一下STL
参考技术B map是一种关联式容器,包含“关键字/值”对
multimap和它几乎相同,但可以关键字重复.
有很多用处,比如把一群人按姓氏分类,关键字为姓,值为名,这样就可以很方便的查找相同姓氏的人群.
abc.reserve(1100);
abc是vector容器,一般用来代替数组使用,它更加方便,安全,可以变长,这句话的意思是这个abc中最少可以放1100个元素,而不用重新分配内存空间.
参考技术C C++primer是一本不错的选择!

以上是关于c++ 不清楚这段代是啥意思......的主要内容,如果未能解决你的问题,请参考以下文章

这段是啥意思,高手解决下哦,不全哦,告诉我怎么转就行拉

error.log 出现这段代码 是啥意思?

下面这段 cmd 代码是啥意思? [关闭]

这段JS代码是啥意思? [复制]

C++中的restrict关键字是啥意思?

C++ 中的***是啥?