문자열을 정렬하는 동안 C ++에서 sort () 작업

하샬 샤르마

나는 정수와 함께 이름이 주어진 문제인 QuestionsLink를 해결하고있었습니다 . 최대 정수 값으로 세 개의 이름을 인쇄해야합니다.

그래서 숫자를 문자열로 변환하고 이름 앞에 연결했습니다. 정렬 후 원하는 결과를 얻었습니다. 그러나 C ++의 정렬 기능이 어떻게 작동하는지 궁금하게 만드는 일부 테스트 케이스가 실패했습니다.

내 코드는 다음과 같습니다.

#include <bits/stdc++.h>
#define ll long long int

using namespace std;

int main() {

  ll n;
  cin >> n;

  string names[n];
  int arr[n], digits[n];

  for (int i = 0; i < n; i++) {
    cin >> names[i] >> arr[i];
    names[i] = to_string(arr[i]) + names[i];
  }

  for (int i = 0; i < n; i++) {
    digits[i] = floor(log10(arr[i]) + 1);
  }

  sort(names, names + n, greater<string>());

  for (int i = 0; i < n; i++) {
    cout << names[i] << endl;
  }
  /*for(int i=0;i<3;i++){
     string s = names[i].substr(digits[i],names[i].length());
     cout<<s<<endl;
   }
   cout<<digits[98];
 */
  return 0;
}

테스트 사례 :

9huDmy
995YnAYoAEE
990RUTM
96ipORo
956LNjFa 

그래서, 내림차순으로 정렬 한 후 9huDmy는 상단에 있고 다음 두 개는 앞에있는 숫자를 기준으로 정렬됩니다.

DevSolar

greater<string>ASCII 값을 기준으로 숫자를 문자보다 작게 정렬 하기 때문입니다.

처음에 그것들을 연결해서는 안됩니다.

1) std::pair< int, std::string >정수와 문자열을 그룹화하는 데 사용 합니다.

2) std::vector< std::pair< int, std::string > >C 배열이 아닌를 사용하십시오 .

삼) int 값에 따라 쌍을 정렬하는 비교기 펑터 (또는 람다)를 작성하십시오.비교는 std::pair자동으로 해당 .first요소, 즉 정수 값을 비교 합니다.


4) 사용 자세한 std::, 또는 using std::string등이 아닌 using namespace ..., 글로벌 네임 스페이스로 무섭게 매우 빠른 혼잡 얻을 것이다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++에서 문자열 복사 작업을 수행하는 동안 오류가 발생했습니다.

분류에서Dev

C에서 문자열을 연결하는 동안 정의되지 않은 동작

분류에서Dev

C에서 Bucket Sort를 사용하여 배열 정렬. 연결 목록에 새 요소를 삽입하는 코드 작동 방식에 대한 질문

분류에서Dev

C에서 동적으로 할당 된 2D 문자 배열을 채우는 동안 이상한 동작

분류에서Dev

문자열 작업을 수행하는 동안 elasticsearch에서 문서를 인덱싱 할 수 없습니다.

분류에서Dev

C에서 문자열을 조작하는 동안 매우 유사한 함수의 오류

분류에서Dev

C ++에서 문자열에 문자를 삽입하는 동안 이상한 동작

분류에서Dev

C #에서 클래스 개체를 JSON 문자열로 직렬화하는 동안 키 이름을 동적으로 설정하는 방법

분류에서Dev

c에서 쉘을 작성하는 동안 문제

분류에서Dev

PHPExcel-배열에서 업로드하는 동안 셀을 문자열로 설정

분류에서Dev

자바에서 문자열 바꾸기 메소드로 작업하는 동안 문제에 직면

분류에서Dev

테이블을 업데이트하는 동안 내부 조인에서 정렬

분류에서Dev

정렬-정렬 된 목록에서 동일한 문자로 시작하는 각 그룹 앞에 임의의 문자열을 추가합니다.

분류에서Dev

Google 클라우드 스토리지 : GCS에 문자열을 업로드하는 동안 CRC32C 및 MD5에서 불일치

분류에서Dev

PHP에서 문자열을 디코딩하는 동안 예기치 않은 동작 (AJAX POST 호출에서)

분류에서Dev

개체 초기화 후 C ++에서 char 배열을 표시하는 동안 비정상적인 동작

분류에서Dev

C # 컬렉션이 수정되었습니다. 목록에서 제거하는 동안 열거 작업이 실행되지 않을 수 있습니다.

분류에서Dev

"CodePad"(온라인 C ++ 컴파일러)에서 연결 목록 작업을 수행하는 동안 코어 덤프

분류에서Dev

C ++에서 배열을 반복하는 동안 추가 숫자

분류에서Dev

EntityManager (Hibernate + MySQL)는 업데이트하는 동안 공백에서 문자열을 자릅니다.

분류에서Dev

Laravel : .sql 파일을 업로드하는 동안 배열에서 문자열로 변환

분류에서Dev

자동 커밋을 사용하여 C #에서 BeginTransaction 작업

분류에서Dev

C #에서 개체의 배열 정렬 (std :: sort와 동일)

분류에서Dev

C #에서 날짜 문자열을 구문 분석하는 동안 오류가 발생했습니다.

분류에서Dev

c ++에서 객체 배열을 정렬하는 동안 std : bad_alloc 오류가 발생합니까?

분류에서Dev

Java에서 문자열을 구문 분석하는 동안 outOfBoundException

분류에서Dev

ASP.NET (VB)에서 두 문자열을 연결하는 동안 이상한 동작

분류에서Dev

ASP.NET (VB)에서 두 문자열을 연결하는 동안 이상한 동작

분류에서Dev

PDF 파일을 만드는 동안 TCPDF에서 작동하지 않는 행 간의 테이블 정렬

Related 관련 기사

  1. 1

    C ++에서 문자열 복사 작업을 수행하는 동안 오류가 발생했습니다.

  2. 2

    C에서 문자열을 연결하는 동안 정의되지 않은 동작

  3. 3

    C에서 Bucket Sort를 사용하여 배열 정렬. 연결 목록에 새 요소를 삽입하는 코드 작동 방식에 대한 질문

  4. 4

    C에서 동적으로 할당 된 2D 문자 배열을 채우는 동안 이상한 동작

  5. 5

    문자열 작업을 수행하는 동안 elasticsearch에서 문서를 인덱싱 할 수 없습니다.

  6. 6

    C에서 문자열을 조작하는 동안 매우 유사한 함수의 오류

  7. 7

    C ++에서 문자열에 문자를 삽입하는 동안 이상한 동작

  8. 8

    C #에서 클래스 개체를 JSON 문자열로 직렬화하는 동안 키 이름을 동적으로 설정하는 방법

  9. 9

    c에서 쉘을 작성하는 동안 문제

  10. 10

    PHPExcel-배열에서 업로드하는 동안 셀을 문자열로 설정

  11. 11

    자바에서 문자열 바꾸기 메소드로 작업하는 동안 문제에 직면

  12. 12

    테이블을 업데이트하는 동안 내부 조인에서 정렬

  13. 13

    정렬-정렬 된 목록에서 동일한 문자로 시작하는 각 그룹 앞에 임의의 문자열을 추가합니다.

  14. 14

    Google 클라우드 스토리지 : GCS에 문자열을 업로드하는 동안 CRC32C 및 MD5에서 불일치

  15. 15

    PHP에서 문자열을 디코딩하는 동안 예기치 않은 동작 (AJAX POST 호출에서)

  16. 16

    개체 초기화 후 C ++에서 char 배열을 표시하는 동안 비정상적인 동작

  17. 17

    C # 컬렉션이 수정되었습니다. 목록에서 제거하는 동안 열거 작업이 실행되지 않을 수 있습니다.

  18. 18

    "CodePad"(온라인 C ++ 컴파일러)에서 연결 목록 작업을 수행하는 동안 코어 덤프

  19. 19

    C ++에서 배열을 반복하는 동안 추가 숫자

  20. 20

    EntityManager (Hibernate + MySQL)는 업데이트하는 동안 공백에서 문자열을 자릅니다.

  21. 21

    Laravel : .sql 파일을 업로드하는 동안 배열에서 문자열로 변환

  22. 22

    자동 커밋을 사용하여 C #에서 BeginTransaction 작업

  23. 23

    C #에서 개체의 배열 정렬 (std :: sort와 동일)

  24. 24

    C #에서 날짜 문자열을 구문 분석하는 동안 오류가 발생했습니다.

  25. 25

    c ++에서 객체 배열을 정렬하는 동안 std : bad_alloc 오류가 발생합니까?

  26. 26

    Java에서 문자열을 구문 분석하는 동안 outOfBoundException

  27. 27

    ASP.NET (VB)에서 두 문자열을 연결하는 동안 이상한 동작

  28. 28

    ASP.NET (VB)에서 두 문자열을 연결하는 동안 이상한 동작

  29. 29

    PDF 파일을 만드는 동안 TCPDF에서 작동하지 않는 행 간의 테이블 정렬

뜨겁다태그

보관