이 컨텍스트에서 C ++ 표준 알고리즘을 적용하는 방법은 무엇입니까?

개구리

저는 C ++를 배우고 있으며 다음 코드를 개선 할 수있는 방법을 알고 싶습니다.

std::vector<float> distances;
std::for_each(play_->get_emps().begin(), play_->get_emps().end(), [distances, tank] (const auto& e) {
    distances.push_back(math::distance(e.location(), tank->location()));
});

벡터를 std :: algorithms로 채우는 더 좋은 방법이 있어야합니다.

일각수

std::transform 범위 (또는 두 범위)의 각 요소에 함수를 적용하고 결과를 다른 범위에 저장하는 알고리즘입니다 (모든 입력 범위와 동일 할 수 있음).

std::vector<float> distances;
std::transform(play_->get_emps().begin(), play_->get_emps().end(), 
               std::back_inserter(distances),
               [tank](const auto& e) {return math::distance(e.location(), tank->location();});

<algorithm>모두 멋지지만 때로는 과잉 IMO입니다. for루프는 더 간단합니다.

std::vector<float> distances;
for(const auto& e: play_) {
    distances.push_back(math::distance(e.location(), tank->location()));
}

Marc Glisse 가 의견에서 언급했듯이 두 버전 모두 std::vector::reserve미리 호출하면 도움이 될 것 입니다. push_back자주 매우 비효율적 사용하는 경우 ( std::back_inserter사용 push_back내부적으로뿐만 아니라)

std::vector<float> distances;
distances.reserve(play_.size());

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AES 256 알고리즘 c # .net을 사용하는 동안 데이터 세트를 더 빠르게 반복하는 방법은 무엇입니까?

분류에서Dev

이 탐욕스러운 알고리즘의 최적 성을 증명하는 방법은 무엇입니까?

분류에서Dev

이 탐욕스러운 알고리즘을 최적으로 증명하는 방법은 무엇입니까?

분류에서Dev

Selenium C #을 사용하여 컨테이너 열 컨테이너에서 텍스트를 클릭하는 방법은 무엇입니까?

분류에서Dev

이 알고리즘을 퍼즐에 더 효율적으로 만들 수있는 방법은 무엇입니까?

분류에서Dev

파이썬에서 FFT 알고리즘을 구현하는 방법은 무엇입니까?

분류에서Dev

분류 알고리즘을 적용하기 전에 범주 형 데이터를 사전 처리하는 방법은 무엇입니까?

분류에서Dev

이 알고리즘에서 연속적이고 독립적 인 if 문을 리팩터링하는 방법은 무엇입니까?

분류에서Dev

내 컴퓨터에서 C 표준을 얻는 방법은 무엇입니까?

분류에서Dev

C ++ 11 표준에서 동적 크기의 배열을 초기화하는 방법은 무엇입니까?

분류에서Dev

합산 표기법을 사용하여 알고리즘이 Θ (log n)임을 증명하는 방법은 무엇입니까?

분류에서Dev

ListView에서 데이터를 선택하고 C #의 텍스트 상자에 데이터를 표시하는 방법은 무엇입니까?

분류에서Dev

x86_64의 C ++ 표준 라이브러리에서 정렬되지 않은 액세스를 중지하는 방법은 무엇입니까?

분류에서Dev

Big Theta Θ 표기법으로이 알고리즘의 형식적인 복잡성을 분석하는 방법은 무엇입니까?

분류에서Dev

K- 평균 알고리즘을 다차원 배열에 적용하는 방법은 무엇입니까?

분류에서Dev

C ++에서 알고리즘의 메모리 사용에 대한 실험을 실행하는 좋은 방법은 무엇입니까?

분류에서Dev

C ++ MFC 대화 상자-목록 컨트롤에서 MySQL 데이터베이스의 항목을 표시하는 방법은 무엇입니까?

분류에서Dev

View 데이터 컨텍스트를 C #에서 XAML로 다시 연결하는 방법은 무엇입니까?

분류에서Dev

printf와 같은 표준 C 라이브러리 함수를 디버깅하는 방법은 무엇입니까?

분류에서Dev

모든 하위 섹션, 전략이 minimax 알고리즘에서 가장 최적임을 증명하는 방법은 무엇입니까?

분류에서Dev

PowerShell에서 "grep"하고 주변 줄 / 컨텍스트를 표시하는 방법은 무엇입니까?

분류에서Dev

GCC libstdc ++ C ++ 표준 라이브러리 소스를 편집하고 다시 빌드하는 방법은 무엇입니까?

분류에서Dev

C #에서 레이블 컨트롤을 사용하여 드롭 다운 목록에 문자열 배열을 표시하는 방법은 무엇입니까?

분류에서Dev

스레드로 표준 컨테이너를 처리하는 방법은 무엇입니까?

분류에서Dev

Isabelle의 모든 하위 목표에 표준을 적용하는 방법은 무엇입니까?

분류에서Dev

Bresenham의 알고리즘을 사용하여 환형 (와이드 서클)을 그리는 올바른 방법은 무엇입니까?

분류에서Dev

배열 알고리즘 : 자바 스크립트를 사용하여이 중첩 배열을 재구성하는 방법은 무엇입니까?

분류에서Dev

스피드 백 알고리즘을 구현하는 데 도움이되는 기능적 방법은 무엇입니까?

분류에서Dev

C ++ 프로젝트에서 Swift 정적 라이브러리 (.a)를 사용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    AES 256 알고리즘 c # .net을 사용하는 동안 데이터 세트를 더 빠르게 반복하는 방법은 무엇입니까?

  2. 2

    이 탐욕스러운 알고리즘의 최적 성을 증명하는 방법은 무엇입니까?

  3. 3

    이 탐욕스러운 알고리즘을 최적으로 증명하는 방법은 무엇입니까?

  4. 4

    Selenium C #을 사용하여 컨테이너 열 컨테이너에서 텍스트를 클릭하는 방법은 무엇입니까?

  5. 5

    이 알고리즘을 퍼즐에 더 효율적으로 만들 수있는 방법은 무엇입니까?

  6. 6

    파이썬에서 FFT 알고리즘을 구현하는 방법은 무엇입니까?

  7. 7

    분류 알고리즘을 적용하기 전에 범주 형 데이터를 사전 처리하는 방법은 무엇입니까?

  8. 8

    이 알고리즘에서 연속적이고 독립적 인 if 문을 리팩터링하는 방법은 무엇입니까?

  9. 9

    내 컴퓨터에서 C 표준을 얻는 방법은 무엇입니까?

  10. 10

    C ++ 11 표준에서 동적 크기의 배열을 초기화하는 방법은 무엇입니까?

  11. 11

    합산 표기법을 사용하여 알고리즘이 Θ (log n)임을 증명하는 방법은 무엇입니까?

  12. 12

    ListView에서 데이터를 선택하고 C #의 텍스트 상자에 데이터를 표시하는 방법은 무엇입니까?

  13. 13

    x86_64의 C ++ 표준 라이브러리에서 정렬되지 않은 액세스를 중지하는 방법은 무엇입니까?

  14. 14

    Big Theta Θ 표기법으로이 알고리즘의 형식적인 복잡성을 분석하는 방법은 무엇입니까?

  15. 15

    K- 평균 알고리즘을 다차원 배열에 적용하는 방법은 무엇입니까?

  16. 16

    C ++에서 알고리즘의 메모리 사용에 대한 실험을 실행하는 좋은 방법은 무엇입니까?

  17. 17

    C ++ MFC 대화 상자-목록 컨트롤에서 MySQL 데이터베이스의 항목을 표시하는 방법은 무엇입니까?

  18. 18

    View 데이터 컨텍스트를 C #에서 XAML로 다시 연결하는 방법은 무엇입니까?

  19. 19

    printf와 같은 표준 C 라이브러리 함수를 디버깅하는 방법은 무엇입니까?

  20. 20

    모든 하위 섹션, 전략이 minimax 알고리즘에서 가장 최적임을 증명하는 방법은 무엇입니까?

  21. 21

    PowerShell에서 "grep"하고 주변 줄 / 컨텍스트를 표시하는 방법은 무엇입니까?

  22. 22

    GCC libstdc ++ C ++ 표준 라이브러리 소스를 편집하고 다시 빌드하는 방법은 무엇입니까?

  23. 23

    C #에서 레이블 컨트롤을 사용하여 드롭 다운 목록에 문자열 배열을 표시하는 방법은 무엇입니까?

  24. 24

    스레드로 표준 컨테이너를 처리하는 방법은 무엇입니까?

  25. 25

    Isabelle의 모든 하위 목표에 표준을 적용하는 방법은 무엇입니까?

  26. 26

    Bresenham의 알고리즘을 사용하여 환형 (와이드 서클)을 그리는 올바른 방법은 무엇입니까?

  27. 27

    배열 알고리즘 : 자바 스크립트를 사용하여이 중첩 배열을 재구성하는 방법은 무엇입니까?

  28. 28

    스피드 백 알고리즘을 구현하는 데 도움이되는 기능적 방법은 무엇입니까?

  29. 29

    C ++ 프로젝트에서 Swift 정적 라이브러리 (.a)를 사용하는 방법은 무엇입니까?

뜨겁다태그

보관