์ปจํ ์ด๋์ ๊ธฐ๋ณธ๊ฐ ์ฑ์ฐ๊ธฐ
๋ฐฐ์ด
1์ฐจ์ ๋ฐฐ์ด
๊ธฐ์กด ์ฝ๋
#include <iostream>
using namespace std;
int main() {
int arr[3];
for (int i = 0; i < 3; i++) {
cout << arr[i] << " ";
}
}
<๊ฒฐ๊ณผ>
-858993460 -858993460 -858993460
์ด๊ธฐํํ์ง ์์์ผ๋ฏ๋ก ์ฐ๋ ๊ธฐ๊ฐ์ด ๋์จ๋ค.
1. fill_n ํจ์ ์ด์ฉ
int main() {
int arr[3];
fill_n(arr, 3, -1);
for (int i = 0; i < 3; i++) {
cout << arr[i] << " ";
}
}
<๊ฒฐ๊ณผ>
-1 -1 -1
2. memset ํจ์ ์ด์ฉ
int arr[3];
memset(arr, -1, sizeof(arr));
for (int i = 0; i < 3; i++) {
cout << arr[i] << " ";
}
}
<๊ฒฐ๊ณผ>
-1 -1 -1
๋ค์ฐจ์ ๋ฐฐ์ด
๊ธฐ์กด ์ฝ๋
#include <iostream>
using namespace std;
int main() {
int arr[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
<๊ฒฐ๊ณผ>
-858993460 -858993460 -858993460
-858993460 -858993460 -858993460
-858993460 -858993460 -858993460
์ด๊ธฐํ๋์ง ์์ ์ฐ๋ ๊ธฐ๊ฐ์ด ๋์จ๋ค.
1. fill ํจ์ ์ด์ฉ
int main() {
int arr[3][3];
fill(&arr[0][0], &arr[2][3], -1);
// ์ฑ์ฐ๊ณ ์ํ๋ ํ ์๋ -1, ์ด ์๋ ๊ทธ๋๋ก
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
<๊ฒฐ๊ณผ>
-1 -1 -1
-1 -1 -1
-1 -1 -1
์คํ
์๋ | ์ฝ๋ | ๊ฒฐ๊ณผ |
---|---|---|
1 | fill(&arr[0][0], &arr[2][2], -1); |
-1 -1 -1 -1 -1 -1 -1 -1 -858993460 |
2 | fill(&arr[0][0], &arr[2][1], -1); |
-1 -1 -1 -1 -1 -1 -1 -858993460 -858993460 |
3 | fill(&arr[0][0], &arr[1][3], -1); |
-1 -1 -1 -1 -1 -1 -858993460 -858993460 -858993460 |
์๋ 1, 2๋ฅผ ํตํด
์ด์ ๋ง์ง๋ง ํ์ ๋ฐ์๋๋ ๊ฒ์ ์ ์ ์๋ค.
2๋ฅผ ์ ๋ ฅํ์ผ๋ฉด ๋ง์ง๋ง ํ์ index 0~1๊น์ง๋ง
1์ ์ ๋ ฅํ์ผ๋ฉด ๋ง์ง๋ง ํ์ index 0~0๊น์ง๋ง
์๋ 3์ ํตํด
ํ์ ๊ทธ๋๋ก ๋๋ฒ์งธ์ธ์์ ์ ๋ ฅํ ๊ทธ๋๋ก ๋ฐ์๋๋ ๊ฒ์ ์ ์ ์๋ค.
1์ ์ ๋ ฅํ์ผ๋ฉด index 0 ~ 1๊น์ง, 2๋ฅผ ์ ๋ ฅํ์ผ๋ฉด index 0 ~ 2๊น์ง
2. memset ํจ์ ์ด์ฉ
int main() {
int arr[3][3];
memset(arr, -1, sizeof(arr));
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
<๊ฒฐ๊ณผ>
-1 -1 -1
-1 -1 -1
-1 -1 -1
vector ์ด๊ธฐํ
STL ์ ์ปจํ ์ด๋ ์ค ํ๋์ธ vector๋ฅผ ์ด๊ธฐํ ํด๋ณด์.
1์ฐจ์ vetor
๊ธฐ์กด ์ฝ๋
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec;
vector<int>::iterator iter;
for (iter = vec.begin(); iter != vec.end(); iter++)
cout << *iter << " ";
}
<๊ฒฐ๊ณผ>
์๋ฌด ๊ฐ๋ ์์ง ๋ฃ์ง ์์์ผ๋ฏ๋ก ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์๋ฌด๊ฒ๋ ๋์ค์ง ์๋๋ค.
1. ๊ธฐ๋ณธ ์ด๊ธฐํ 1
//vector<int> vec;
vector<int> vec = { -1,-1,-1 };
๋ฐฐ์ด๊ณผ ๊ฐ์ด ์์๋ฅผ ์ง์ ํ ๋นํด์ค ์ ์๋ค.
2. ๊ธฐ๋ณธ ์ด๊ธฐํ 2
//vector<int> vec = { -1,-1,-1 };
vector<int> vec(3);
๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋ณด์.
<๊ฒฐ๊ณผ>
0 0 0
ํฌ๊ธฐ 3์ง๋ฆฌ intํ vector๊ฐ ๋ง๋ค์ด์ง๋ฉฐ 0์ผ๋ก ์๋ ์ด๊ธฐํ ๋๋ค.
//vector<int> vec(3);
vector<int> vec(3,-1);
๋ ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋ณด์.
<๊ฒฐ๊ณผ>
-1 -1 -1
ํฌ๊ธฐ 3์ง๋ฆฌ intํ vector๊ฐ ๋ง๋ค์ด์ง๋ฉฐ -1๋ก ์๋ ์ด๊ธฐํ ๋๋ค.
3. fill ํจ์ ์ด์ฉ
vector<int> vec(3);
fill(vec.begin(),vec.end(),-1);
<๊ฒฐ๊ณผ>
-1 -1 -1
4. assign ํจ์ ์ด์ฉ
vector<int> vec;
vec.assign(3,-1);
for (int i = 0; i < 3; i++) {
cout << vec[i] << " ";
}
<๊ฒฐ๊ณผ>
-1 -1 -1
5. ๋ฐฐ์ด๋ก ์ด๊ธฐํ
int main() {
int arr[3];
memset(arr, -1, sizeof(arr));
vector<int> vec(arr, arr + sizeof(arr)/sizeof(int));
vector<int>::iterator iter;
for (iter = vec.begin(); iter != vec.end(); iter++)
cout << *iter << " ";
}
์์์ ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ด๊ธฐํํ ํ, vector๋ฅผ ์์ฑํ๋ฉด์ ๋ฐฐ์ด๋ก ์ด๊ธฐํํด์ค ์ ์๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ sizeof ํจ์์ ์ฌ์ฉ์ด๋ค.
memset ํจ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ byte ๋จ์๋ก ์๊ฐํ์ฌ arr์ size๋ฅผ ๊ทธ๋๋ก ๋๊ฒจ์ฃผ๋ฉด ๋๋ค. ๋ฐ๋ผ์ 3๊ฐ์ int๊ฐ ์๋ arr ๋ฐฐ์ด์ ํฌ๊ธฐ๋ 3*4byte = 12byte๊ฐ ๋์ด ํด๋น ๋ฉ๋ชจ๋ฆฌ์ -1๊ฐ์ด ํ ๋น๋ ๊ฒ์ด๋ค.
๋ฐ๋ฉด vector์ ์์ฑ์์ ๋๊ฒจ์ฃผ๋ ๋งค๊ฐ๋ณ์๋ ์์ ์ฃผ์์ ๋ง์ง๋ง ์ฃผ์์ด๋ค. ๋ง์ง๋ง ์ฃผ์๋ฅผ (์์ ์ฃผ์์ ๋ฐฐ์ด์ ์์ ๊ฐ์๋ฅผ ๋ํ ๊ฐ)์ผ๋ก ์๊ฐํ๋ค๋ฉด ์์์ ๊ฐฏ์๋ ๋ฉ๋ชจ๋ฆฌ ๋จ์๊ฐ ์๋์ฌ์ ๊ณ์ฐ์ ํตํด ๊ตฌํด์ฃผ์ด์ผํ๋ค. 12byte๋ก ๋ฐํ๋๋ sizeof(arr)์ ๊ฐ์ ํ๋์ ์์๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ sizeof(int) ์ฆ, 4byte๋ก ๋๋์ด์ฃผ๋ฉด ์์์ ๊ฐฏ์๋ฅผ ์ป์ ์ ์๋ค.
6. vector๋ก ์ด๊ธฐํ
์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ vector์ ๊ฐ์ผ๋ก ์ด๊ธฐํํ ๋๋ ์์ฑ์์ ํด๋น vector์ ์ด๋ฆ๋ง ๋๊ฒจ์ฃผ๋ฉด ๋๋ค.
int main() {
int arr[3];
memset(arr, -1, sizeof(arr));
vector<int> vec1(arr, arr + sizeof(arr)/sizeof(int)); // ์ด๋ฆ ๋ณ๊ฒฝ
vector<int> vec(vec1); // ์ถ๊ฐ
vector<int>::iterator iter;
for (iter = vec.begin(); iter != vec.end(); iter++)
cout << *iter << " ";
}
<๊ฒฐ๊ณผ>
-1 -1 -1
๋ค์ฐจ์ vector
๊ธฐ์กด ์ฝ๋
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> vec(3, vector<int>(3));
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << vec[i][j] << " ";
}
cout << endl;
}
}
<๊ฒฐ๊ณผ>
0 0 0
0 0 0
0 0 0
1. ๊ธฐ๋ณธ ์ด๊ธฐํ
//vector<vector<int>> vec(3, vector<int>(3));
vector<vector<int>> vec(3, vector<int>(3,-1));
<๊ฒฐ๊ณผ>
-1 -1 -1
-1 -1 -1
-1 -1 -1
2. fill ํจ์
int main() {
vector<vector<int>> vec(3, vector<int>(3));
vector<vector<int>>::iterator iter;
for (iter = vec.begin(); iter!= vec.end(); iter++){
fill(iter->begin(), iter->end(), -1);
}
}
<๊ฒฐ๊ณผ>
-1 -1 -1
-1 -1 -1
-1 -1 -1
<๋ฐ๋์ด๋์ ๋๊ธ๋ก 2021-03-27 ์์ ๋์์ต๋๋ค>
vector<vector<int>> vec(3, vector<int>(3));
fill(vec.begin(), vec.end(), vector<int>(3, -1));
<๊ฒฐ๊ณผ>
-1 -1 -1
-1 -1 -1
-1 -1 -1
fill ํจ์๋ ์ฑ์ธ ์ ์๋ ์๋ฃํ (๋งค๊ฐ๋ณ์ 3๋ฒ์งธ)์ด ๊ทธ๋ฅ const Type ํ์ผ๋ก ์๋ฃํ์ด ์๊ด์๊ธฐ ๋๋ฌธ์ vector์์ฒด๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ ๋๋ก ์ด๊ธฐํ ๋๋ค.
Comment