for 루프를 기반으로 범위 내의 객체 주소를 얻는 방법은 무엇입니까?

솔티

내 벡터를 반복하고 벡터에 저장된 항목의 주소를 얻으려고했습니다. 다른 유형의 반복자 (아래 참조)에서 작동하지만 이렇게하려고하면 for(auto it :my_vec)오류가 발생합니다.error: no match for 'operator*' (operand type is 'my_class')

  #include <iostream>
  #include <vector>

  class my_class{
      int x;
  public: 
      my_class(int x_):x(x_){}

  };

 std::vector<my_class> my_vec;

 void fill_vec(size_t size){

     for(int i = 0; i < size; i++){
         my_vec.push_back(my_class(i));
     }

 }

 int main(){

     size_t size = 10;

     fill_vec(size);

     for(auto it :my_vec){
         std::cout << &it << std::endl;
         std::cout << &(*it) << std::endl;
     }

     std::cout << "-----------" << std::endl;

     for(auto it = my_vec.begin(); it != my_vec.end(); it++){
         std::cout << &(*it) << std::endl;
     }

     std::cout << "-----------" << std::endl;

     for(size_t i = 0; i < my_vec.size(); i++){
         std::cout << &my_vec[i] << std::endl;
     }   

 return 0;
 }
Eerorika

for 루프를 기반으로 범위 내의 객체 주소를 얻는 방법은 무엇입니까?

다른 곳에서 객체의 주소를 얻는 것과 같은 방법 : addressof 연산자 ( operator&)를 사용합니다 .

다른 유형의 반복자 (아래 참조)에서 작동하지만 이렇게하려고하면 for(auto it :my_vec)오류가 발생합니다.error: no match for 'operator*' (operand type is 'my_class')

범위 기반 for 루프는 반복자를 제공하지 않습니다. 그것은 당신에게 물건을줍니다. 이 경우를 사용 했으므로 벡터에있는 객체의 복사 auto본인 my_class인스턴스 ( value_type컨테이너의 것이기 때문에)를 제공합니다 . (비 참조 연산자)에 my_class대한 오버로드가 없으므로 operator*시도한 줄 (포함 *it)이 작동하지 않았고 컴파일러가 문제를 설명합니다.


따라서 std::cout << &it << std::endl;정확하지만 벡터의 객체가 아닌 사본의 주소를 제공합니다. 벡터에있는 객체의 주소를 원할 것이므로 대신 auto&또는 my_class&참조를 가져와야합니다. addressof 연산자에 대한 피연산자로 참조를 사용하면 참조 된 객체의 주소를 얻습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

mongo로 문서 내부 배열 객체의 순위를 매기는 방법은 무엇입니까?

분류에서Dev

입력 범위를 기반으로 ansible의 루프에 분할 값을 전달하는 방법은 무엇입니까?

분류에서Dev

LinkedList의 노드임을 "알기"위해 객체를 얻는 방법은 무엇입니까?

분류에서Dev

Rails 4.0-자식 객체의 ID를 기반으로 객체 컬렉션을 얻는 방법은 무엇입니까?

분류에서Dev

AngularJS의 범위를 기반으로 데이터를 필터링하는 방법은 무엇입니까?

분류에서Dev

for 루프의 객체에 값으로 i를 할당하는 방법은 무엇입니까?

분류에서Dev

배열 내부의 객체를 반환하는 방법은 무엇입니까?

분류에서Dev

JSON 내에서 객체의 길이를 얻는 방법은 무엇입니까?

분류에서Dev

Javascript로 다른 범위를 포함하는 범위의 값을 얻는 방법은 무엇입니까?

분류에서Dev

d3.js의 값을 기반으로 사전 객체를 정렬하는 방법은 무엇입니까?

분류에서Dev

이번주의 날짜 범위를 얻는 방법은 무엇입니까?

분류에서Dev

jQuery로 하위 범위 요소를 얻는 방법은 무엇입니까?

분류에서Dev

주어진 주소를 기반으로 구조체를 초기화하는 방법은 무엇입니까?

분류에서Dev

날짜 열을 기반으로 최신 정보를 얻고 BuildMetrics 유형의 객체를 반환하는 방법은 무엇입니까?

분류에서Dev

주어진 범위의 요소를 배열로 빠르게 합하는 방법은 무엇입니까?

분류에서Dev

jQuery 사용을 위해 HTML 요소의 객체 참조를 얻는 방법은 무엇입니까?

분류에서Dev

팬더의 위치를 기반으로 하위 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

하위 컬렉션의 값을 기반으로 개체를 선택하는 방법은 무엇입니까?

분류에서Dev

하위 컬렉션의 값을 기반으로 개체를 선택하는 방법은 무엇입니까?

분류에서Dev

vba로 루프 범위를 늘리는 방법은 무엇입니까?

분류에서Dev

연속 요소의 배열 객체의 반복 키 값 수를 얻는 방법은 무엇입니까?

분류에서Dev

Boost KMP와 함께 사용할 개체의 범위 반복기를 만드는 방법은 무엇입니까?

분류에서Dev

특정 범위로 표시된 ipv6 주소를 얻는 방법은 무엇입니까?

분류에서Dev

특정 범위로 표시된 ipv6 주소를 얻는 방법은 무엇입니까?

분류에서Dev

객체 안에있는 객체의 필드를 기준으로 정렬하는 방법은 무엇입니까?

분류에서Dev

Backbone의 객체에서 요소를 얻는 방법은 무엇입니까?

분류에서Dev

사용자의 입력을 기반으로 Json 객체를 반복 한 다음 객체 속성을 사용하는 방법은 무엇입니까?

분류에서Dev

범위 내의 텍스트를 기반으로 범위의 다음 요소를 얻는 방법

분류에서Dev

퍼그 반복에서 올바른 객체를 보내기 위해 모달 대화 상자를 얻는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    mongo로 문서 내부 배열 객체의 순위를 매기는 방법은 무엇입니까?

  2. 2

    입력 범위를 기반으로 ansible의 루프에 분할 값을 전달하는 방법은 무엇입니까?

  3. 3

    LinkedList의 노드임을 "알기"위해 객체를 얻는 방법은 무엇입니까?

  4. 4

    Rails 4.0-자식 객체의 ID를 기반으로 객체 컬렉션을 얻는 방법은 무엇입니까?

  5. 5

    AngularJS의 범위를 기반으로 데이터를 필터링하는 방법은 무엇입니까?

  6. 6

    for 루프의 객체에 값으로 i를 할당하는 방법은 무엇입니까?

  7. 7

    배열 내부의 객체를 반환하는 방법은 무엇입니까?

  8. 8

    JSON 내에서 객체의 길이를 얻는 방법은 무엇입니까?

  9. 9

    Javascript로 다른 범위를 포함하는 범위의 값을 얻는 방법은 무엇입니까?

  10. 10

    d3.js의 값을 기반으로 사전 객체를 정렬하는 방법은 무엇입니까?

  11. 11

    이번주의 날짜 범위를 얻는 방법은 무엇입니까?

  12. 12

    jQuery로 하위 범위 요소를 얻는 방법은 무엇입니까?

  13. 13

    주어진 주소를 기반으로 구조체를 초기화하는 방법은 무엇입니까?

  14. 14

    날짜 열을 기반으로 최신 정보를 얻고 BuildMetrics 유형의 객체를 반환하는 방법은 무엇입니까?

  15. 15

    주어진 범위의 요소를 배열로 빠르게 합하는 방법은 무엇입니까?

  16. 16

    jQuery 사용을 위해 HTML 요소의 객체 참조를 얻는 방법은 무엇입니까?

  17. 17

    팬더의 위치를 기반으로 하위 문자열을 얻는 방법은 무엇입니까?

  18. 18

    하위 컬렉션의 값을 기반으로 개체를 선택하는 방법은 무엇입니까?

  19. 19

    하위 컬렉션의 값을 기반으로 개체를 선택하는 방법은 무엇입니까?

  20. 20

    vba로 루프 범위를 늘리는 방법은 무엇입니까?

  21. 21

    연속 요소의 배열 객체의 반복 키 값 수를 얻는 방법은 무엇입니까?

  22. 22

    Boost KMP와 함께 사용할 개체의 범위 반복기를 만드는 방법은 무엇입니까?

  23. 23

    특정 범위로 표시된 ipv6 주소를 얻는 방법은 무엇입니까?

  24. 24

    특정 범위로 표시된 ipv6 주소를 얻는 방법은 무엇입니까?

  25. 25

    객체 안에있는 객체의 필드를 기준으로 정렬하는 방법은 무엇입니까?

  26. 26

    Backbone의 객체에서 요소를 얻는 방법은 무엇입니까?

  27. 27

    사용자의 입력을 기반으로 Json 객체를 반복 한 다음 객체 속성을 사용하는 방법은 무엇입니까?

  28. 28

    범위 내의 텍스트를 기반으로 범위의 다음 요소를 얻는 방법

  29. 29

    퍼그 반복에서 올바른 객체를 보내기 위해 모달 대화 상자를 얻는 방법은 무엇입니까?

뜨겁다태그

보관