const vector作为函数形参时,要使用迭代器,不能直接使用iterator, 必须用const_iterator,否则编译不通过。
错误的写法:
bool DataCollectorManager::SetCollectorConfigs(const std::vector&optionsList) { for(std::vector ::iterator iter = optionsList.begin(); iter != optionsList.end(); ++iter) { } }
报错如下:
error: conversion from ‘__normal_iterator’ to non-scalar type ‘__normal_iterator ’ requested 93 | for(const std::vector ::iterator iter = vctrItemInfoList.begin(); iter != vctrItemInfoList.end(); ++iter)
正确的写法:
bool DataCollectorManager::SetCollectorConfigs(const std::vector&optionsList) { for(std::vector ::const_iterator iter = optionsList.begin(); iter != optionsList.end(); ++iter) { } }



