C++에서 std::vector<std::pair<int, int>> 를 배열로 변환할 수 있을까요?

조회수 3316회

제목 그대로, pair 값을 가지는 vector를 배열로 저장하고 싶은데, 가능한가요?

1 답변

  • 좋아요

    -1

    싫어요
    채택 취소하기

    pair의 first와 second를 unsigned char[2]로 변환해서 사용하면 이렇게 쓸 수 있습니다.

    #include <iostream>
    #include <vector>
    
    unsigned char** convert(std::vector<std::pair<int,int>> vector_pair){
      int n = vector_pair.size();
      unsigned char** ret = new unsigned char*[n];
    
    
      for(int i=0; i < n ;i++){
        ret[i] = new unsigned char[2];
        ret[i][0] = (unsigned char)vector_pair[i].first;
        ret[i][1] = (unsigned char)vector_pair[i].second;
      } 
    
      return ret;
    }
    
    
    int main()
    {
      std::vector<std::pair<int,int>> vector_pair
      {
        {1, 2},
        {3, 4},
        {5, 6}
      };  
      unsigned char** converted = convert(vector_pair);
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)