C++ 用(指针) 取不出STL容器中的 值 地址 ?

浏览:31日期:2023-03-19

问题描述

注明下是用指针 不是用引用 : ...C++ 用(指针) 取不出STL容器中的 值 地址 ?

int main(){ std::vector<int> testData{100,500,60}; auto atValue = [=](std::vector<int> &vec,int *data){for(auto it = vec.begin();it != vec.end();it++){ if (*it == 500) {data = &*it;break; }} }; int *tint = NULL; atValue(testData,tint); //*tint = 50; printf('%d',*tint); return 0;}

felix 说 : int data改成int &data

问题得到解决感谢.

问题解答

回答1:

int main(){ std::vector<int> testData{100,500,60}; auto atValue = [=](std::vector<int> &vec,int **data){for(auto it = vec.begin();it != vec.end();it++){ if (*it == 500) {*data = &*it;break; }} }; int *tint = new int(0); atValue(testData,&tint); //*tint = 50; printf('%d',*tint); delete tint; return 0;}

have try

相关文章: