vector의 모든 요소들의 평균을 계산하는 방법을 소개합니다.
1. for문으로 평균 값 계산
반복문으로 vector의 모든 요소를 순회하면서 합계를 계산하고 전체 개수로 나눠서 평균 값을 계산할 수 있습니다.
#include <iostream>
#include <vector>
#include <numeric>
template<typename T>
double getAverage(std::vector<T> const& vec) {
if (vec.empty()) {
return 0;
}
double sum = 0.0;
for (int i = 0; i < vec.size(); i++) {
sum += (double) vec.at(i);
}
return sum / vec.size();
}
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
double avg = getAverage(vec);
std::cout << "Average: " << avg << std::endl;
return 0;
}
Output:
Average: 3
2. std::accumulate()를 이용한 방법
std::accumulate(first, last, init)
은 배열의 first에서 last 구간의 요소들의 합을 리턴합니다. init은 합계에 기본으로 추가되는 값입니다. init을 10으로 전달하면 합계에 10이 추가된 값이 리턴됩니다.
아래와 같이 vector의 평균을 계산할 수 있습니다.
#include <iostream>
#include <vector>
#include <numeric>
template<typename T>
double getAverage(std::vector<T> const& vec) {
if (vec.empty()) {
return 0;
}
return std::accumulate(vec.begin(), vec.end(), 0.0) / vec.size();
}
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
double avg = getAverage(vec);
std::cout << "Average: " << avg << std::endl;
return 0;
}
Output:
Average: 3
3. std::reduce()를 이용한 방법
std::reduce(first, last, init)
도 first에서 last 범위의 vector 요소들의 합을 리턴합니다. init은 초기 값으로, 합계에 더해서 리턴되는 값입니다.
아래와 같이 vector의 평균을 계산할 수 있습니다.
#include <iostream>
#include <vector>
#include <numeric>
template<typename T>
double getAverage(std::vector<T> const& vec) {
if (vec.empty()) {
return 0;
}
return std::reduce(vec.begin(), vec.end(), 0.0) / vec.size();
}
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
double avg = getAverage(vec);
std::cout << "Average: " << avg << std::endl;
return 0;
}
Output:
Average: 3
Loading script...
Related Posts
- [C++] 배열을 리스트(list)로 변환
- [C++] 배열에서 특정 요소 제거
- [C++] vector 모든 요소의 합계 계산
- [C++] 두개의 배열이 같은지 비교
- [C++] 배열에 특정 요소가 있는지 확인
- [C++] 2차 배열 복사 방법
- [C++] 배열 복사하는 방법 (copy, memcpy)
- [C++] 함수의 인자로 배열 전달
- [C++] vector 모든 값의 평균 계산
- [C++] vector를 문자열로 변환
- [C++] 배열에서 요소의 Index 찾기
- [C++] 배열의 중복 요소 찾기
- [C++] 배열의 중복 요소 제거
- [C++] 배열 순서 거꾸로 뒤집기
- [C++] char 배열을 string으로 변환
- [C++] string을 char 배열로 변환
- [C++] 문자열 거꾸로 뒤집기
- [C++] vector의 중복 요소 제거
- [C++] 두 배열을 하나의 배열로 합치기
- [C++] 배열 길이, 크기 얻는 방법
- [C++] 배열에서 최대값, 최소값 찾기 (3가지 방법)
- [C++] int를 string으로 변환, 3가지 방법
- [C++] 문자열 리스트(Vector, 배열) 정렬
- [C++] string의 문자 정렬
- [C++] string을 int로 변환, 3가지 방법
- [C++] string 대문자/소문자 변환 방법
- [C++] string.compare() 문자열 비교
- [C++] int를 char로 변환, 3가지 방법
- [C++] 문자열 자르기, 3가지 방법
- [C++] isdigit(), 어떤 문자가 숫자인지 확인
- [C++] strlen(), 문자열 길이 계산
- [C++] strcmp(), strncmp() 함수로 문자열 비교
- [C++] strstr(), 특정 문자열 찾기