«stl» 태그된 질문

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


6
오버로드 된 함수에 대한 포인터를 어떻게 지정합니까?
과부하 된 함수를 std::for_each()알고리즘 에 전달하고 싶습니다 . 예를 들어 class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; 컴파일러가 f()반복자 유형 으로 해결 될 것으로 기대합니다 . 분명히 (GCC 4.1.2) 그렇게하지 않습니다. 그렇다면 f()원하는 것을 어떻게 지정할 수 있습니까?
137 c++  stl 

5
C ++ 이중 주소 연산자? (&&)
STL 소스 코드를 읽고 있는데 &&주소 연산자가 무엇을해야하는지 전혀 모른다 . 다음은 코드 예제입니다 stl_vector.h. vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } "주소 주소"가 의미가 있습니까? 왜 하나가 아닌 두 개의 주소 연산자가 있습니까?

3
처음부터 끝까지 반복하는 동안지도 요소에서 erase ()를 호출하면 어떻게됩니까?
다음 코드에서는 맵을 반복하고 요소를 지워야하는지 테스트합니다. 요소를 지우고 계속 반복하는 것이 안전합니까 아니면 다른 컨테이너에서 키를 수집하고 두 번째 루프를 수행하여 erase ()를 호출해야합니까? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != port_map.end(); pm_it++) { if (pm_it->second == delete_this_id) { port_map.erase(pm_it->first); } } 업데이트 : 물론, 나는 관련이 …
133 c++  stl  iterator 

7
쌍의 두 번째 요소를 기준으로 쌍으로 구성된 벡터를 어떻게 정렬합니까?
쌍으로 구성된 벡터가있는 경우 : std::vector<std::pair<int, int> > vec; 쌍의 두 번째 요소를 기반으로 목록을 정렬하는 쉬운 방법이 있습니까? 나는이 일을하는 작은 함수 객체를 작성할 수 있습니다 알고 있지만, 기존의 부품을 사용하는 방법이 STL을 하고 std::less바로 일을 할 수는? 편집 : 정렬 할 세 번째 인수로 전달하는 별도의 함수 또는 …
133 c++  stl  stdvector 


7
std :: queue :: pop이 값을 반환하지 않는 이유는 무엇입니까?
이 페이지를 살펴 봤지만 같은 이유를 알 수 없습니다. 거기에 언급되어 있습니다 "아무 값도 반환하지 않고 클라이언트가 front ()를 사용하여 큐 맨 앞의 값을 검사하도록 요구하는 것이 더 합리적입니다." 그러나 front ()에서 요소를 검사하려면 해당 요소를 lvalue로 복사해야합니다. 예를 들어이 코드 세그먼트에서 std::queue<int> myqueue; int myint; int result; std::cin >> …
123 c++  stl 

10
반복하지 않고 배열의 내용을 C ++의 std :: vector에 어떻게 복사합니까?
나중에 처리하기 위해 저장해야하는 프로그램의 다른 부분에서 내 함수로 전달되는 값 배열이 있습니다. 데이터를 처리 할 시간이되기 전에 내 함수가 몇 번 호출 될지 모르기 때문에 동적 저장 구조가 필요하므로 std::vector. push_back모든 값에 대해 개별적으로 표준 루프를 수행 할 필요가 없습니다 memcpy..
122 c++  stl  vector  copy 



13
std :: map에 해당하는 remove_if
특정 조건에 따라 맵에서 다양한 요소를 지우려고했습니다. STL 알고리즘을 사용하려면 어떻게합니까? 처음에는 사용을 생각 remove_if했지만 remove_if가 연관 컨테이너에서 작동하지 않기 때문에 불가능합니다. 지도에서 작동하는 "remove_if"와 동등한 알고리즘이 있습니까? 간단한 옵션으로지도를 반복하고 지우는 방법을 생각했습니다. 그러나지도를 반복하고 안전한 옵션을 지우고 있습니까? (지우기 후 반복기가 무효화 됨) 다음 예를 사용했습니다. bool predicate(const …
118 c++  stl  map 


4
std :: swap () 오버로드 방법
std::swap()정렬 및 할당 중에 많은 표준 컨테이너 (예 : std::list및 std::vector)에서 사용됩니다. 그러나의 표준 구현 swap()은 매우 일반화되어 사용자 정의 유형에 대해서는 비효율적입니다. 따라서 std::swap()사용자 정의 유형별 구현 으로 오버로딩 하여 효율성을 얻을 수 있습니다 . 그러나 표준 컨테이너에서 사용되도록 어떻게 구현할 수 있습니까?

5
C ++ 맵 액세스가 한정자를 버림 (const)
다음 코드는 맵을 메소드 const로 전달하면 operator[]한정자가 삭제됩니다. #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) << endl; return 0; } 맵 …
113 c++  stl  const  maps 

9
지도에 삽입하는 데 선호되는 / 관용적 인 방법은 무엇입니까?
에 요소를 삽입하는 네 가지 방법을 확인했습니다 std::map. std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); 그 중 어느 것이 선호되는 / 관용적 인 방법입니까? (그리고 내가 생각하지 않은 다른 방법이 있습니까?)
111 c++  stl  insert  stdmap  std-pair 

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