주어진 벡터 세트에서 각 열의 가장 작은 값을 효율적으로 찾는 방법은 무엇입니까?주어진 벡터의 최소값 찾기
예를 들어, 다음과 같은 프로그램을 고려 :
#include <iostream>
#include <vector>
#include <iterator>
#include <cstdlib>
using namespace std;
typedef vector<double> v_t;
int main(){
v_t v1,v2,v3;
for (int i = 1; i<10; i++){
v1.push_back(rand()%10);
v2.push_back(rand()%10);
v3.push_back(rand()%10);
}
copy(v1.begin(), v1.end(), ostream_iterator<double>(cout, " "));
cout << endl;
copy(v2.begin(), v2.end(), ostream_iterator<double>(cout, " "));
cout << endl;
copy(v3.begin(), v3.end(), ostream_iterator<double>(cout, " "));
cout << endl;
}
나는 모든 컬럼의 가장 작은 값을 찾으려는 출력이 프로그램에서
3 5 6 1 0 6 2 8 2
6 3 2 2 9 0 6 7 0
7 5 9 7 3 6 1 9 2
을하자를 (3 개 주어진 벡터) 그것을 벡터에 넣으십시오. 이 작업을 수행 할 수있는 효율적인 방법은
3 3 2 1 0 0 1 7 0
있습니까 : 나는 벡터 v_t vfinal
를 정의하려면이 프로그램에서 그 값을 가질 것인가? 내 프로그램은 매우 많은 수의 벡터 중에서 가장 작은 값을 찾아야하기 때문에 효율적이라고 말합니다. 고맙습니다.
업데이트 : 나는 내 이전 프로그램 중 하나에서 사용하는 다음과 같은 것을 사용하려고 해요
는
int count = std::inner_product(A, A+5, B, 0, std::plus<int>(), std::less<int>());
이 두 배열 A와 B 사이의 최소 요소의 수를 계산 최소의 값을 찾기 위해 유사한 종류의 함수를 반복하고 사용할 수 있다면 충분히 효율적이지 않습니까? 내가 할 수 있다고 주장하지 않습니다. 그것은 개선 될 수있는 아이디어 일 뿐이지 만 어떻게해야할지 모르겠다.
문제가 효율적이라면 행 대신 열로 테이블을 저장하는 것이 좋습니다. – chrisaycock