![](/img/trans.png)
[英]Is it possible to use a lambda expression in a .cpp file in XCode?
[英]Xcode .cpp code getting error with lambda expression
這些天我正在學習 C++,在 Mac/XCode 中運行代碼,當我今天做 lambda 表達式時,我的 D7_Listing7_12.cpp 文件不斷出錯
D7_Listing7_12.cpp:17:14: error: expected expression
[](int Element) {cout << Element << " " << endl;});
^
D7_Listing7_12.cpp:33:11: error: expected expression
[](int Num1, int Num2) {return (Num2 < Num1); } );
^
下面是我如何定義這兩個 lambda 輸入:
for_each(dynArr.begin(), dynArr.end(),\
[](int Element) {cout << Element << " ";});
和
sort (myNums.begin(), myNums.end(),
[](int Num1, int Num2) {return (Num2 < Num1); } );
我試圖在網上搜索很多答案,有人說這是 mac Xcode clang 的一個問題,因為它沒有使用 C++ 11,但其他一些人說大多數當前的 Xcode 應該以 C++11 作為默認運行。 所以我現在很困惑:(
我也在我的終端中運行了這個:
llvm-gcc --version
結果如下:
Apple LLVM version 10.0.0 (clang-1000.10.44.4)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
我對 Xcode 和 C++ 還是很陌生,有人可以幫助我或給我一些線索嗎?
非常感謝
凱西
這是代碼:
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void DisplayNum(vector<int>& dynArr){
for_each(dynArr.begin(), dynArr.end(),\
[](int Element) {cout << Element << " ";});
cout << endl;
}
int main(){
vector<int> myNums;
myNums.push_back(500);
myNums.push_back(50);
myNums.push_back(-10);
myNums.push_back(1);
DisplayNum(myNums);
cout << "Sorting them in descending order :" << endl;
sort (myNums.begin(), myNums.end(),
[](int Num1, int Num2) {return (Num2 < Num1); } );
DisplayNum(myNums);
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.