에 CONST INT 2 차원 벡터를 초기화하는 방법 : 그것은 작동하지 않습니다CONST INT 2 차원 벡터를 초기화하는 방법 C++
Const int vector < vector <int> > v ?
v = {1 , 1 ; 1, 0} ?
합니다.
에 CONST INT 2 차원 벡터를 초기화하는 방법 : 그것은 작동하지 않습니다CONST INT 2 차원 벡터를 초기화하는 방법 C++
Const int vector < vector <int> > v ?
v = {1 , 1 ; 1, 0} ?
합니다.
이 (only in C++11) 수행 할 수 있습니다
const vector<vector<int>> v{{1,2,3},{4,5,6}};
또한
> >
를 쓸 필요는 없습니다. 이 문제는 C++ 11에서 수정되었으므로
>>
이 작동합니다. 오른쪽 시프트 연산자로 해석되지 않습니다 (C++ 03의 경우처럼). 컴파일러가 초기화리스트 기능을 지원하는 경우
글쎄, 거기에 교대로 컴파일되지 않습니다. –
@DavidSchwartz : 올바른 C++ 11입니다. – Nawaz
(? 뭐라고 부르는지이다) C++ 11, 당신은이 작업을 수행 할 수 있습니다 : 당신이 어떤을 추가 할 수 없습니다
const vector<vector<int>> v {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
주 첫 번째 차원에 요소를 추가합니다 (두 번째 요소에 요소를 추가 할 수 있음). 이 아닌 수정 될 수있는 두 번째 차원을 원한다면
v.push_back(vector<int> { 8, 9, 10 }); // BAD
v[0].push_back(4); // OK
, 당신은
vector<const vector<int>> {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
다음
v.push_back(const vector<int> { 8, 9, 10 }); // OK
v[0].push_back(4); // BAD
를하거나 요소를 원하는 경우 자신이 const
을 할 수 할 거라고, 당신 하겠습니까
vector<vector<const int>> {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
그런 다음
v.push_back(vector<const int> { 8, 9, 10 }); // OK
v[0].push_back(4); // OK
v[0][0] = 2; // BAD
당신은 아마 런타임에 수정하려는, 그래서 전부
const
을 제거하는 아마 좋다.
using namespace std;
int main(void){
const vector< vector<int> > v(10, vector<int>(10,1));
return 0;
}
을 처음 상태 나는 이것이 당신이하지 생각하지 생각하지 않는다 1
에 10 × 10 배열입니다. ['const' 벡터] (http://yosefk.com/c++fqa/const.html#fqa-18.1)는 수정할 수없는 벡터입니다. 그것은 그것 안에있는 객체들을'const'하게 만들지 않습니다. –