«stl» 태그된 질문

STL (Standard Template Library)은 일반 컨테이너, 반복자, 알고리즘 및 함수 객체로 구성된 C ++ 라이브러리입니다. C ++가 표준화되었을 때, STL의 많은 부분이 표준 라이브러리에 채택되었고, 표준 라이브러리의 이러한 부분은 때때로 총칭하여 "STL"로 잘못 언급되기도합니다.

7
std :: vector <AbstractClass>를 선언 할 수없는 이유는 무엇입니까?
C #에서 개발하는 데 꽤 많은 시간을 보냈는데, 인터페이스로 사용할 목적으로 추상 클래스를 선언하면이 추상 클래스의 벡터를 인스턴스화하여 자식 클래스의 인스턴스를 저장할 수 없다는 것을 알았습니다. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class IFunnyInterface { public: virtual void IamFunny() = 0; }; class FunnyImpl: IFunnyInterface { public: …

3
내 수업에 스왑 기능을 제공하는 방법은 무엇입니까?
swapSTL 알고리즘 을 활성화하는 적절한 방법은 무엇입니까 ? 1) 회원 swap. 합니까는 std::swap멤버를 사용하는 SFINAE의 트릭을 사용합니다 swap. 2) swap동일한 네임 스페이스에서 독립형 . 3) std::swap. 4) 위의 모든 것. 감사합니다. 편집 : 내 질문을 명확하게 말하지 않은 것 같습니다. 기본적으로 템플릿 클래스가 있으며 해당 클래스에 대해 작성한 (효율적인) 스왑 …
87 c++  algorithm  stl  swap 

4
지도에 대한 나만의 비교기를 어떻게 만들 수 있습니까?
typedef map&lt;string, string&gt; myMap; 에 새 쌍을 삽입 할 때 myMap키 string를 사용하여 자체 문자열 비교기로 비교합니다. 해당 비교기를 재정의 할 수 있습니까? 예를 들어 string알파벳이 아닌 길이로 키를 비교하고 싶습니다 . 아니면지도를 정렬하는 다른 방법이 있습니까?
87 c++  stl  stdmap 

10
deque에 벡터 사용을 선호하는 이유
이후 둘 다 인접한 메모리 컨테이너입니다. 기능면에서 deque는 벡터가 가진 거의 모든 것을 가지고 있습니다. 앞쪽에 삽입하는 것이 더 효율적이기 때문입니다. 왜 whould 사람을 선호 std::vector하는 std::deque?
87 c++  stl  vector  deque 

12
STL의 벡터에 맵 값 복사
현재 효과적인 STL을 통해 작업 중입니다. 항목 5는 일반적으로 단일 요소 대응에 대해 범위 멤버 함수를 사용하는 것이 바람직하다는 것을 제안합니다. 현재 맵의 모든 값 (예 : 키가 필요하지 않음)을 벡터에 복사하고 싶습니다. 이를 수행하는 가장 깨끗한 방법은 무엇입니까?
85 c++  stl  containers 

6
std :: get_temporary_buffer가 필요한 이유는 무엇입니까?
어떤 용도로 사용해야 std::get_temporary_buffer합니까? Standard는 다음과 같이 말합니다. 최대 n 개의 인접한 T 개체를 저장하기에 충분한 저장소에 대한 포인터를 가져옵니다. 버퍼가 스택에 할당 될 것이라고 생각했지만 사실이 아닙니다. C ++ 표준에 따르면이 버퍼는 실제로 일시적인 것이 아닙니다. 이 함수는 ::operator new객체를 구성하지 않는 전역 함수에 비해 어떤 이점이 있습니다. 다음 …

1
STL 캐릭터 특성의 요점은 무엇입니까?
SGI STL 참조 사본에 캐릭터 특성에 대한 페이지가 있지만 이것이 어떻게 사용되는지 볼 수 없습니다. string.h 함수를 대체합니까? 에 의해 사용되지 않는 것 같습니다 std::string. 예를 들어의 length()메서드 std::string는 Character Traits length()메서드를 사용하지 않습니다 . 캐릭터 특성이 존재하고 실제로 사용되는 이유는 무엇입니까?

5
지도와 무순지도 중에서 선택하는 방법은 무엇입니까?
문자열을 키로 사용하여 데이터를 매핑한다고 가정 해 보겠습니다. 무엇 용기는 내가 선택,해야 map또는 unordered_map? unordered_map더 많은 메모리를 차지하므로 메모리가 문제가되지 않고 속도가 문제라고 가정 해 보겠습니다. unordered_map일반적으로 O (n)의 최악의 경우 O (1)의 평균 복잡도를 제공해야합니다. 어떤 경우에 O (n)에 도달합니까? map시간 은 언제 보다 효율적 unordered_map입니까? n이 작을 때 …

8
Android NDK에 벡터와 같은 C ++ 헤더를 포함 할 수 없습니다.
Android NDK 프로젝트 (최신 NDK r5b 사용)에 벡터와 같은 C ++ 클래스를 포함하려고하면 다음과 같은 오류가 발생합니다. Compile++ thumb : test-libstl &lt;= test-libstl.cpp /Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory 이 문제를 온라인으로보고 한 다른 사람들은 다음을 추가하여 성공을 주장했습니다. APP_STL := stlport_static Application.mk 파일에 추가합니다. 이 작업을 수행하고 …

7
std :: multiset에는 요소가 발견되면 하나의 샘플 (단일화 또는 복제) 만 지우는 함수 또는 알고리즘이 있습니다.
아마도 이것은 중복이지만 검색하는 것을 찾지 못했습니다 . 발견 된 값을 가진 모든 요소 erase(value)에 std::multiset대해 호출 되면 삭제됩니다. 내가 생각할 수있는 유일한 해결책은 다음과 같습니다. std::multiset&lt;int&gt;::iterator hit(mySet.find(5)); if (hit!= mySet.end()) mySet.erase(hit); 이것은 괜찮지 만 더 나을 것이라고 생각했습니다. 어떤 아이디어?
83 c++  stl  multiset 

17
문자열 벡터를 문자열로 내파하는 방법 (우아한 방법)
문자열 벡터를 문자열로 내파하는 가장 우아한 방법을 찾고 있습니다. 다음은 지금 사용중인 솔루션입니다. static std::string&amp; implode(const std::vector&lt;std::string&gt;&amp; elems, char delim, std::string&amp; s) { for (std::vector&lt;std::string&gt;::const_iterator ii = elems.begin(); ii != elems.end(); ++ii) { s += (*ii); if ( ii + 1 != elems.end() ) { s += delim; } } …
83 c++  string  stl  stdstring  implode 

15
std :: fill을 사용하여 증가하는 숫자로 벡터 채우기
vector&lt;int&gt;using 을 채우고 std::fill싶지만 하나의 값 대신 벡터에 숫자가 오름차순으로 포함되어야합니다. 함수의 세 번째 매개 변수를 하나씩 반복하여이를 달성하려고 시도했지만 이것은 1 또는 2로 채워진 벡터 만 제공합니다 ( ++연산자 의 위치에 따라 다름 ). 예: vector&lt;int&gt; ivec; int i = 0; std::fill(ivec.begin(), ivec.end(), i++); // elements are set to …
82 c++  stl 


12
char * vs std :: string in C ++ [닫힘]
현재이 질문은 Q &amp; A 형식에 적합하지 않습니다. 사실, 참고 문헌 또는 전문 지식에 의해 답변이 뒷받침되기를 기대하지만이 질문은 토론, 논쟁, 여론 조사 또는 확장 된 토론을 유도 할 가능성이 높습니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으세요. 휴일 칠년 전에 . …
81 c++  stl  stdstring  arrays 

6
std :: vector :: resize () 대 std :: vector :: reserve ()
의 코멘트 섹션에서 스레드가 이 게시물 사용에 대한 std::vector::reserve()비교는std::vector::resize() . 다음은 원래 코드입니다. void MyClass::my_method() { my_member.reserve(n_dim); for(int k = 0 ; k &lt; n_dim ; k++ ) my_member[k] = k ; } 에서 요소를 작성 vector하는 올바른 방법은를 호출하는 것이 std::vector::resize()아니라std::vector::reserve() . 실제로 VS2010 SP1의 디버그 빌드에서 다음 테스트 …
80 c++  stl  vector 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.