数组的第一题 剑指offer

class Solution {
public:
    bool Find(vector<vector<int> > array,int target) {
        int i = 0,j = 0;
        int len1 =sizeof(array)/sizeof(int);
        //int len2=sizeof(array[0])/sizeof(int);//长度
        //int len3 =len1/len2; //高度
        int len3 = array.size();
        int len2 = array[0].size();
        if(len3 == 0 || len2 ==0)
            return false;
        for(i = 0; i < len3;i++)
        {
         for(j = 0;j<len2;j++)
             {
                 if(target == array[i][j])
                 {
                 return true;    
                 }
             }
        }
        
        return false;
    }
};
我不知道为啥我用第一种sizeof()  长度没用size求 就会老师跳出  。。什么多种递归 数组越界之类的 能帮我看看么大家
全部评论
vector是类模板,无论怎么添加数据,对其取sizeof都是固定的,根据不同编译器对vector的实现其取值也不同,一般是一般是12或16。因为vector是对动态数组的封装,分配的是堆内存,vector内部只需要指向堆内存的迭代器、实际元素结尾迭代器、容量结尾迭代器(也可能有内存分配器)这几个成员产量,无虚函数占用内存。代码需要的是vector的元素量而不是类模板大小!平时写代码时一般是不对stl的类模板取siaeof的。
点赞 回复 分享
发布于 2016-10-21 12:43
建议你看看STL源码剖析
点赞 回复 分享
发布于 2016-10-21 12:45

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务