camera 中一段c++代码分析

天王盖地虎626 发布于 08/02 23:43
阅读 105
收藏 0

如下代码,标红的地方,帮忙解释下哦,谢谢

(*(requests.begin())) 我的理解,是把requests.begin()看作一个整体,比如是变量begin

那么*(requests.begin()) 可以理解为 *(begin)这应该算是解引用,对吧

(*(requests.begin()))  可以理解为(*(begin)) ,那这能表示什么意思呢?

执行Camera3Device::RequestThread线程中的queueRequestList。

status_t Camera3Device::RequestThread::queueRequestList(
        List<sp<CaptureRequest> > &requests,
        /*out*/
        int64_t *lastFrameNumber) {
    ATRACE_CALL();
    Mutex::Autolock l(mRequestLock);
    for (List<sp<CaptureRequest> >::iterator it = requests.begin(); it != requests.end();
            ++it) {

//*it表面it是指针吧,可是List<sp<CaptureRequest> >::iterator it 这不是指针啊,不理解这个地方的用法
        mRequestQueue.push_back(*it);
    }

    if (lastFrameNumber != NULL) {
        *lastFrameNumber = mFrameNumber + mRequestQueue.size() - 1;
        ALOGV("%s: requestId %d, mFrameNumber %" PRId32 ", lastFrameNumber %" PRId64 ".",
              __FUNCTION__, (*(requests.begin()))->mResultExtras.requestId, mFrameNumber,
              *lastFrameNumber);
    }

    unpauseForNewRequests();

    return OK;
}

加载中
0
0
快乐的一只小青蛙
快乐的一只小青蛙

不要引入太多的概念, 好好看看关于STL和迭代器的知识。什么引用、解引用,都是扯淡的

0
天王盖地虎626
天王盖地虎626

引用来自“快乐的一只小青蛙”的评论

不要引入太多的概念, 好好看看关于STL和迭代器的知识。什么引用、解引用,都是扯淡的

关键这部分代码,我看不懂啊,主要想研究android 中的c++代码

快乐的一只小青蛙
快乐的一只小青蛙
回复 @天王盖地虎626 : 那就看好C++基础先
天王盖地虎626
天王盖地虎626
回复 @快乐的一只小青蛙 : 才自学c++呀,以前用java的,看c++代码很不适应:cold_sweat:
快乐的一只小青蛙
快乐的一只小青蛙
你是不懂STL,而STL算是C++中很重要的一部分内容了,也就是你的C++基础太过薄弱
返回顶部
顶部