«vector» 태그된 질문

벡터는 1 차원 배열입니다. 여기에는 정수 색인을 사용하여 액세스 할 수있는 구성 요소가 포함됩니다. 일부 언어에서는 Vector를 만든 후 항목을 추가하거나 제거하기 위해 필요한만큼 벡터 크기가 커지거나 줄어들 수 있습니다. 그래픽 표시에는 '벡터 그래픽'을 사용하십시오.

10
원시 메모리에 대한보기로 std :: vector 사용
어느 시점에서 정수 및 크기 배열에 대한 원시 포인터를 제공하는 외부 라이브러리를 사용하고 있습니다. 이제 std::vector원시 포인터로 값을 액세스하지 않고 해당 값에 액세스하고 수정하는 데 사용하고 싶습니다 . 요점을 설명하는 명확한 예는 다음과 같습니다. size_t size = 0; int * data = get_data_from_library(size); // raw data from library {5,3,2,1,4}, size …
71 c++  c++11  vector  stdvector 


2
std :: vector에 추가 할 때 클래스 필드의 이상한 동작
다음 상황에서 매우 이상한 동작 (clang 및 GCC에서)이 발견되었습니다. nodes하나의 요소가있는 class의 인스턴스 가있는 벡터가 있습니다 Node. 그런 다음 벡터에 nodes[0]새로운 것을 추가 하는 함수를 호출합니다 Node. 새 노드가 추가되면 호출 객체의 필드가 재설정됩니다! 그러나 일단 기능이 완료되면 다시 정상으로 돌아 오는 것 같습니다. 나는 이것이 최소한의 재현 가능한 예라고 …

6
std :: vector :: swap 메소드를 사용하여 C ++에서 두 개의 다른 벡터를 바꾸는 것이 안전합니까?
다음 코드가 있다고 가정하십시오. #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } 벡터가 std::string아직 클래스 가 아니라고 상상해보십시오 . std::vector<Widget> WidgetVector; std::vector<Widget2> Widget2Vector; 이 std::vector::swap방법으로 …
30 c++  c++11  vector  stdvector  swap 

3
두 범위 내에서 내림차순으로 벡터 정렬
정수 벡터가 있다고 가정 해보십시오. std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); 그런 다음 내림차순으로 정렬합니다. sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); 이것은 다음을 생성합니다. 14 13 12 11 10 9 8 7 6 5 4 3 …

2
C ++에서 키로서의 벡터는 어떻게 내부적으로 작동합니까?
이 SO 답변에 따르면 벡터에 대한 벡터가있는 STL 맵 벡터를 키로 사용할 수 있습니다. 벡터를 키로 사용할 때 키가 고유해야하기 때문에 실제로 어떻게 작동합니까? 동일한 요소를 가진 다른 벡터를 삽입 할 때 map요소별로 요소를 중복 검사하거나 벡터 이름이 무언가를 지정합니까? 배열의 이름은 기본 주소를 나타냅니다. 따라서 기본 주소는 키로 사용될 …
14 c++  arrays  dictionary  vector  stl 

1
요소를 완벽하게 전달하여 std :: vector를 목록 초기화 할 수 있습니까?
std :: vector의 집계 목록 초기화는 이동 이 더 적합 할 때 복사 초기화를 수행 한다는 것을 알았습니다 . 동시에 여러 emplace_backs가 원하는 것을 수행합니다. 나는 템플릿 함수를 작성하는이 불완전한 해결책을 생각 해낼 수 있었다 init_emplace_vector. 그러나 명시 적이 지 않은 단일 값 생성자에 대해서만 최적입니다 . template <typename T, …


2
원자 벡터의 초기화
치다: void foo() { std::vector<std::atomic<int>> foo(10); ... } foo의 내용이 이제 유효합니까? 아니면 명시 적으로 반복하고 초기화해야합니까? 나는 Godbolt를 확인했는데 괜찮아 보이지만이 시점에서 표준이 매우 혼란스러워 보입니다. 표준 : : 벡터 생성자는 삽입 말한다 기본 삽입 의 인스턴스 std::atomic<int>이며, 초기화 값 배치를 통해를 new. 가치 초기화의이 효과가 적용된다고 생각합니다. 2) …
12 c++  vector  atomic 

3
C ++에서 std :: resize (n)과 std :: shrink_to_fit의 차이점은 무엇입니까?
나는이 진술들을 보았습니다. resize(n)– 'n'요소를 포함하도록 컨테이너의 크기를 조정합니다. shrink_to_fit()– 크기에 맞게 컨테이너 용량을 줄이고 용량을 초과하는 모든 요소를 ​​파괴합니다. 이 기능들 사이에 중요한 차이점이 있습니까? 그들은 C ++에서 벡터 아래에옵니다.

7
벡터의 요소를 지우면 작동하지 않습니다
벡터가 있습니다. 마지막 3 개 요소를 삭제해야합니다. 이 논리를 설명했습니다. 프로그램이 충돌합니다. 실수는 무엇입니까? vector<float>::iterator d = X.end(); for (size_t i = 1; i < 3; i++) { if (i == 1) X.erase(d); else X.erase(d - i); }
10 c++  vector 

2
SWIG를 사용하여 numpy 배열을 vector <int> & (reference)로 변환하는 방법
내 목표: 파이썬에서 3 개의 numpy 배열을 생성 한 다음 (두 개는 특정 값으로 초기화됩니다) 세 가지를 모두 swig를 통해 벡터 참조 로 c ++ 함수에 보냅니다. (데이터 복사 및 효율성 손실을 피하기 위해). c ++ 함수에 들어가면 배열 중 2 개를 더하고 그 합을 3 번째 배열에 넣습니다. vec_ref.h …
10 python  c++  numpy  vector  swig 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.