注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

*今日收获总结  

2012-02-27 23:23:14|  分类: 总结类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.开启了我MSDN阅读之路。以前畏惧与MSDN全英文的原因,已知没有使用它。今天我抱着试试看的态度在MSDN里查向量VECTOR的内容,得到的结果返回时非常鼓舞人心的。尤其是里面的例子更是对每个函数的完美呈现。总之一个字:好!!!

2.明确了STL的内容:容器,迭代器,函数以及他们的关系。STL提供的一些容器虽然有很好的结构还有一些实用的成员函数,但是为了实现更灵活和强大的功能,STL前辈把一些常用的函数封装在算法部分,提供函数的参数表以供我们调用。比如一个SORT函数,对不同数量的内容排序,函数会“智能”选择最优化的排序算法来实现。

3.STL理论上通过迭代器(相当于指针)把所有和容器(相当于数据结构——数据存储的方式)和算法联系在一起。这个特性真的碉堡了。举个例子我在ATM机模拟器中想要在VECTOR里查找一个对象是否存在,但是VECTRO(容器)本身不提供查找的成员函数,这就需要用到算法(algorithm)里面的find函数

下面是find函数在MSDN里面的具体定义:

template<class InputIterator, class Type>     InputIterator find(        InputIterator _First,         InputIterator _Last,         const Type& _Val     );
简单来说就是在参数里填写要查找的容器的开头.first()[返回的是指针/引用]和结尾.Last() 以及要超找的对象_Val
下面是MSDN提供的实例:

#include <list> //STL容器list #include <algorithm>//STL算法 #include <iostream> int main() { using namespace std; list <int> L; list <int>::iterator Iter;//这里的LIST可以换成任何STL容器 list <int>::iterator result; L.push_back( 40 ); L.push_back( 20 ); L.push_back( 10 ); L.push_back( 30 ); L.push_back( 10 ); cout << "L = ( " ; for ( Iter = L.begin( ) ; Iter != L.end( ) ; Iter++ ) cout << *Iter << " "; cout << ")" << endl; result = find( L.begin( ), L.end( ), 10 );//FIND()函数的函数调用,返回值为一个指针。

//如果查找到就返回的是找到位置的指针

//如果没找到就返回.end() if ( result == L.end( ) ) cout << "There is no 10 in list L."; else { cout << "There is a 10 in list L"; if ( ++result != L.end() ) cout << " and it is followed by a " << *result << "."; } cout << endl; }


4.当工程文档较多时,各类声明头文件之间可能会互相调用,在一个头文件上会包含其他类的头文件,这时候很容易出现error C2011: ' '
:'class' type redefinition 错误。简单的说就是因为头文件的互相调用而出现类被重复定义了。这种问题的解决方案有2中:
1.最简单的就是在每个工程的头文件开头增加声明
#pragma once//只编译一次
2.第二这方式是通过预编译实现的就是在每个头文件的开头和结尾以下面方式声明:
 #ifndef #define   

          ...

       #endif
就先这样吧。晚安咯,世界。

  评论这张
 
阅读(102)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018