나는 다음과 같은 코드를 실행하고, 그러나 나는 다음과 같은 오류 메시지가 무엇입니까 호출 오류 :C++ 벡터 :와 push_back
오류 : 비 클래스 타입 인 멤버 'vec1'에 '와 push_back'에 대한 요청 "표준 : 벡터 [5]
에러 : 비 클래스 형인 부재 'VEC2'에서 '와 push_back'요청 '표준 : 벡터 [5]
오류 : 매치 for 'operator *'for 'vec1 [i] * vec2 [i]'
두 벡터를 곱하려고합니다. 포인터 표기법을 사용하여 결과를 배열에 저장합니다. 제발 도와주세요. 고맙습니다! 당신의 목적을 위해
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int value1, value2;
int length;
cout << "Please enter the size of the vectors" << endl;
cin >> length;
vector<int> vec1[5];
vector<int> vec2[5];
cout << "Please enter the values for vector 1" << endl;
for(int i = 0; i < length; i++){
cin >> value1;
vec1.push_back(value1);
}
cout << "Please enter the values for vector 2" << endl;
for(int i = 0; i < length; i++){
cin >> value2;
vec2.push_back(value2);
}
int *ptr = new int[length];
for(int i = 0; i < length; i++){
ptr[i] = vec1[i] * vec2[i];
}
for(int i = 0; i < length; i++){
cout << *(ptr + i) << " ";
}
}
'벡터 vec1 [5];'정말로 벡터 배열이 필요합니까? –
drescherjm
'결과를 포인터 표기법을 사용하여 배열에 저장합니다 .' 새로운 [] :'std :: vector vec3 (length);을 사용하지 않고도 여전히 벡터를 사용하고'포인터 표기법 '을 사용할 수 있습니다. int * ptr = & vec3 [0]'그렇지 않으면 코드에 메모리 누수가 있습니다. –
PaulMcKenzie