Xcode. cpp код, получающий ошибку с лямбда-выражением - PullRequest
0 голосов
/ 16 марта 2020

В настоящее время я изучаю C ++, выполняю код в Mac / XCode, и когда я сегодня делал лямбда-выражение, я продолжаю получать сообщение об ошибке для моего файла 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); } );
          ^

Вот как я определяю эти два лямбда-ввода:

  for_each(dynArr.begin(), dynArr.end(),\
             [](int Element) {cout << Element << " ";});

и

sort (myNums.begin(), myNums.end(),
          [](int Num1, int Num2) {return (Num2 < Num1); } );

Я пытался найти довольно много ответов в Интернете, некоторые говорили, что это проблема для ma c 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 ++, кто-нибудь может мне помочь или дать подсказку?

Большое спасибо

Кэти

1 Ответ

0 голосов
/ 17 марта 2020

вот код:

#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...