我有一些程序問題,也許有人可以幫助我。所以:使用for_each,複製字符串
int main() {
std::string col = "maly tekst"
for_each(/* FILL IN #2*/ f());
copy(/*FILL IN #3*/);
std::cout << col; }
輸出應該是:TSKET YLAM
我知道,我需要使用仿函數所以我做了這樣的事情:
#include <iostream>
#include <string>
#include <algorithm>
class f{
public:
void operator() (char &k)const
{
k = toupper(k);
}
};
int main(){
std::string col = "maly tekst";
for_each(col.begin(),col.end(),f());
copy(col.rbegin(),col.rend(),back_inserter(col));
std::cout << col << std::endl;
}
但現在當我運行它,它返回:
MALY TEKSTTSKET YLAM
有人能指出我的正確方式,還是幫助我使用此示例程序?
感謝
E:忘了補充一點,我只能用在主這個功能,我不能添加任何新
您正插入到相同字符串的後面。 – juanchopanza
如果你的仿函數如圖所示,你需要公開操作符。如果沒有顯示,我建議你改變這種習慣。 – chris
Sory我忘了添加公衆:它現在是公開 – Silwest