배열용 컨테이너
표준 벡터
std::vector는 표준 라이브러리에 속하며 클래스 템플릿으로 구현
그럼에도 불구하고 배열과 매우 유사하게 사용 가능
예제
#include <vector>
int main()
{
std::vector<float> v(3), w(3);
v[0] = 1; v[1] = 2; v[2] = 3;
w[0] = 7; w[1] = 8; w[2] = 9;
}
벡터의 크기는 컴파일할 때 알 필요가 없음
벡터는 존재하는 동안 크기를 조정할 수도 있음
C의 배열 및 포인터와 달리 벡터 인수는 크기를 알고 있으므로 일치하는지 확인 가능
배열의 크기는 나중에 템플릿을 사용해 추론 가능
벡터는 복사 가능하며 함수를 통해 반환 가능
이렇게 하면 보다 자연스러운 표기법을 사용할 수 있음
valarray
valarray는 요소별 연산을 사용하는 1차원 배열
#include <iostream>
#include <valarray>
int main()
{
std::valarray<float> v = {1,2,3}, w = {7,8,9}, s=v+2.0f * w;
v = sin(s);
for (float x : v)
std::cout << x << ' ';
std::cout << '\n';
}
강ㅈ덤은 슬라이스에 접근하는 기능
각각의 연산을 포함해 행렬과 고차 텐서를 대리 실행 가능
그럼에도 불구하고 대부분의 선형 대수 연산을 직접 지원하지 않기 때문에
수치를 다루는 커뮤니티에서 valarray를 널리 사용하지는 않음
'C++' 카테고리의 다른 글
[C++] 절대값(pow), 제곱근(abs) 구하는 방법 (0) | 2023.10.06 |
---|---|
[C++] 부분 문자열 찾을 때 find와 npos에 관련하여 (2) | 2023.10.06 |
[C++] int를 string으로 변환하는 방법 (0) | 2023.10.06 |
C++ 끄적끄적.. (0) | 2023.06.29 |
C++ 기초 1 (스트림, 서식지정, 포인터, 스마트포인터, 레퍼런스) (0) | 2023.05.23 |