C++中的map构造函数怎么用?

typedefstructCloudPoint{intpid,symbol;doublex,y,z,outs;doublecolor_r,color_g,color_b;... typedef struct CloudPoint
{
int pid,symbol;
double x,y,z,outs;
double color_r,color_g,color_b;
NPoint PCurvature;
}CPoint;

typedef std::map<int,CPoint> CPoints;
请问CPoints的定义是什么。。。map函数有点长找不到。。。
展开
 我来答
千锋教育
2015-12-02 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
  1. map最基本的构造函数;
map<string ,int>mapstring; map<int,string >mapint;
map<sring,char>mapstring; map< char ,string>mapchar;
map<char,int>mapchar; map<int ,char>mapint;

  2. map添加数据;
  map<int ,string>maplive;
1. maplive.insert(pair<int,string>(102,"aclive"));
2. maplive.insert(map<int,string>::value_type(321,"hai"));
3. maplive[112]="April";//map中最简单最常用的插入添加!

  3. map中元素的查找:
  find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
  map<int ,string >::iteratorl_it;;
l_it=maplive.find(112);//返回的是一个指针
if(l_it==maplive.end())
cout<<"we do not find112"<<endl;
elsecout<<"wo find112"<<endl;

  
  map<string,string>m;
  if(m[112]=="")
  cout<<"we do not find112"<<endl;

  4. map中元素的删除:
如果删除112;
map<int ,string>::iterator l_it;;
l_it =maplive.find(112);
if( l_it == maplive.end())
cout<<"we do not find112"<<endl;
else maplive.erase(l_it);//delete 112;

  5. map中 swap的用法:
Map中的swap不是一个容器中的元素交换,而是两个容器交换;
For example:
#include<map>
#include<iostream>
  usingnamespace std;
  int main()
{
map <int, int> m1, m2, m3;
map <int,int>::iterator m1_Iter;
  m1.insert( pair <int, int>(1, 10 ) );
m1.insert ( pair <int,int> ( 2, 20 ) );
m1.insert ( pair <int,int> ( 3, 30 ) );
m2.insert ( pair <int,int> ( 10, 100 ) );
m2.insert ( pair <int,int> ( 20, 200 ) );
m3.insert ( pair <int,int> ( 30, 300 ) );
cout << "The original map m1is:";
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )
cout << " "<<m1_Iter->second;
cout << "."<< endl;
// This isthe member function version of swap
// m2 is said to be theargument map; m1 the target map
m1.swap( m2);
cout << "Afterswapping with m2, map m1 is:";
for ( m1_Iter = m1.begin( ) ; m1_Iter != m1.end() ; m1_Iter++ )
cout << " "<< m1_Iter ->second;
cout << "."<< endl;
cout << "After swapping with m2, mapm2 is:";
for ( m1_Iter = m2.begin( ); m1_Iter != m2.end(); m1_Iter++ )
cout << " "<< m1_Iter ->second;
cout << "."<< endl;
// This is the specialized template version of swap
swap( m1, m3 );
cout << "Afterswapping with m3, map m1 is:";
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end(); m1_Iter++ )
cout << " "<< m1_Iter ->second;
cout << "."<< endl;
}
  
zhurong4k7
推荐于2017-09-21 · 超过10用户采纳过TA的回答
知道答主
回答量:19
采纳率:0%
帮助的人:21.2万
展开全部
CPoints 就是一个map的重定义,相当于一个别名吧,可以用它来定义map对象,它的键是一个int对象,值则是一个CloudPoint对象。比如我这样定义CPoints a; 这句代码表示a就是一个map,它的键值分别是一个int对象和CloudPoint对象。
追问
map是一个什么样的类?

for(CPoints::iterator it_point=cpoints.begin();it_point!=cpoints.end();it_point++)
iterator和it_point分别是什么定义 找不到
追答
map是一个关联容器,是系统定义的,就像string一样,不同的是string是一个顺序容器而已。iterator是迭代器,是用来对容器元素进行检查和遍历的一种数据类型。系统都为容器定义了迭代器的,一般访问容器的元素可以通过下标,而另一种方法就是通过迭代器来访问。it_point就是定义的一个迭代器对象,用它来对map内的元素进行操作。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰血无双
2014-05-06 · TA获得超过246个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:323万
展开全部
typedef 自定义名称
CPoints 是 map<int,CPoint>模板类 的别名
一个整形 一个点 相映射
追问
map是一个什么样的类?

for(CPoints::iterator it_point=cpoints.begin();it_point!=cpoints.end();it_point++)
iterator和it_point分别是什么定义 找不到
追答
map是模板类 查下C++STL模板的相关材料
iterator是迭代器类型 it_point是迭代变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式