우리는 C++ STL을 사용하여 이렇게 할 수 있습니까? 그렇다면 요소를 어떻게 초기화할까요? 나는 이것을하려고 노력했지만 그것은 효과가 없다. 벡터는 크기가없는 기본 단위C++ : 쌍 <vector<int>, 벡터 <int>> p;
pair<vector<int>,vector<int>>p;
p.first[0]=2;
우리는 C++ STL을 사용하여 이렇게 할 수 있습니까? 그렇다면 요소를 어떻게 초기화할까요? 나는 이것을하려고 노력했지만 그것은 효과가 없다. 벡터는 크기가없는 기본 단위C++ : 쌍 <vector<int>, 벡터 <int>> p;
pair<vector<int>,vector<int>>p;
p.first[0]=2;
우리는 C++ STL을 사용하여 이것을 할 수 있습니까
예. 하지만 아마도 standard library을 대신 사용하고있을 것입니다.
그렇다면 요소를 어떻게 초기화할까요?
쌍을 이루지 않은 벡터 요소를 초기화하는 것과 같은 방법으로 요소를 초기화합니다. List-initialization은 좋은 옵션입니다.
나는 이것을하려하지만 작동하지 않습니다.
절대 넣지 않은 벡터의 요소를 수정하려고합니다. operator[]의 역할을하는 페이지를 살펴보십시오. 벡터에 요소를 추가한다고 명시하지 않습니다. 그러나, other functions이 있습니다.
, 당신이해야 하나 push_back
일부 요소 또는 resize
그 때문에 처음.
pair<vector<int>, vector<int>> p = {{1,2,3}, {4,5,6}};
p.first
과 (유형 std::vector<int>
와) p.second
이 초기화됩니다,하지만 그들은 그들에 요소가 없습니다, 여전히 빈 위치 : 당신의 페이지를 초기화 할 수있는 방법이 될 것입니다. 그런 다음 p.first[0] = 2;
은 UB로 이어집니다.
당신은 할 수 있습니다
p.first.push_back(2);
예 작동,하지만 당신은 당신이 그들의 요소에 액세스하기 전에 std::vector
의 메모리를 할당 할 필요가 : 또는
//p now can hold 1 element
p.first.resize(1);
을, 당신은 push_back
를 사용할 수 있습니다
//p now has 1 element with value 2
p.first.push_back(2).
문제가 해결되지 않으면 ** 작동 방법 **을 고려하십시오. 그것은 컴파일합니까? 잘못된 결과가 나옵니까? 어떤 결과를 기대 했습니까? – user2079303
호기심에 의해서만 무엇을하려고합니까? – Garf365
독립적으로 사용할 수없는 것들을 결합하지 마십시오. upvotes는 어디에서 오는가? – LogicStuff