亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問關于C++函數replace問題?

請問關于C++函數replace問題?

繁花不似錦 2019-07-25 10:06:40
C++函數replace問題
查看完整描述

3 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

replace的返回值為void,不是int*

12345Defined in header <algorithm>    templateclass ForwardIt, class T >void replace( ForwardIt first, ForwardIt last,              const T& old_value, const T& new_value );    (1)    templateclass ForwardIt, class UnaryPredicate, class T >void replace_if( ForwardIt first, ForwardIt last,                 UnaryPredicate p, const T& new_value );

 猜想你是想替換數組里面的某個值,可以這樣寫:

1234567891011121314151617181920212223242526#include <iostream>#include <algorithm>using namespace std; int main(){    int a[5] = { 1, 2, 3, 4, 5 };    int *p = a;//實際上 p沒用到,可以注掉    int old;    cout << "請選輸入被替換的元素:\n";    cin >> old;    int new_num;    cout << "請輸入新的元素:\n";    cin >> new_num;//     /*int *end_rep =*/ replace(a, a + 5, old, new_num);// //     while (p != end_rep)// //     {// //         cout << *p << "\t";// //         p++;// //     }    //猜想你是想替換掉數組中的某個值,可以如下編寫:    replace_if(a, a + 5, [old](int iVcomp) ->boolreturn iVcomp == old; }, new_num);     //free(p);//不應該free,指向的是一個局部數組的地址,數組會自己銷毀    return 0;}

關于 replace_if的第三個參數,那個lambda,你可以查找相關資料?;蛘吣阋部梢圆橄潞瘮祵ο笙嚓P資料


查看完整回答
反對 回復 2019-07-29
?
達令說

TA貢獻1821條經驗 獲得超6個贊

根本沒錯,這是C不是C++  你編譯環境搞錯了吧


查看完整回答
反對 回復 2019-07-29
  • 3 回答
  • 0 關注
  • 772 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號