«stl» 태그된 질문

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


6
함수에서 '벡터'를 반환해도되는 이유는 무엇입니까?
이 코드를 고려하십시오. 이 유형의 코드를 여러 번 보았습니다. words로컬 벡터입니다. 함수에서 어떻게 반환 할 수 있습니까? 죽지 않을 것이라고 보장 할 수 있습니까? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << "\n"; std::exit(-1); } std::vector<string> words;//this vector will be returned …

4
개체, 특히 STL 개체를 DLL로 (부터) 안전하게 전달하는 방법은 무엇입니까?
클래스 개체, 특히 STL 개체를 C ++ DLL과주고받는 방법은 무엇입니까? 내 응용 프로그램은 DLL 파일 형식의 타사 플러그인과 상호 작용해야하며 이러한 플러그인이 빌드되는 컴파일러를 제어 할 수 없습니다. STL 개체에 대해 보장 된 ABI가 없다는 것을 알고 있으며 내 응용 프로그램이 불안정해질 수 있습니다.
106 c++  windows  dll  stl  abi 

9
"유용한"C ++ 바이너리 검색 알고리즘은 어디서 구할 수 있습니까?
std::binary_search표준 라이브러리의 <algorithm>헤더 와 같은 C ++ STL 컨테이너와 호환되는 이진 검색 알고리즘이 필요하지만 요소가 존재하는지 알려주는 단순한 부울이 아닌 결과를 가리키는 반복자를 반환해야합니다. (참고로, 표준위원회가 binary_search 용 API를 정의 할 때 도대체 무슨 생각을했을까요?!) 여기서 내 주요 관심사는 바이너리 검색의 속도가 필요하다는 것입니다. 따라서 아래에 언급 된 것처럼 다른 …

5
사용자 정의 std :: set 비교기 사용
스택 오버플로에 대한 자세한 내용은 다음과 같이 설정합니다 . : Компаратор для set 정수 집합에서 항목의 기본 순서를 숫자 대신 사전 식으로 변경하려고하는데 다음을 g ++로 컴파일 할 수 없습니다. file.cpp : bool lex_compare(const int64_t &a, const int64_t &b) { stringstream s1,s2; s1 << a; s2 << b; return s1.str() …
106 c++  stl 

10
std :: set에 "contains"멤버 함수가없는 이유는 무엇입니까?
나는 많이 사용 std::set<int>하고 있으며 종종 그러한 세트에 숫자가 포함되어 있는지 확인해야합니다. 다음과 같이 쓰는 것이 자연 스럽습니다. if (myset.contains(number)) ... 하지만 contains멤버 가 없어서 귀찮은 글을 써야합니다. if (myset.find(number) != myset.end()) .. 또는 명확하지 않은 경우 : if (myset.count(element) > 0) .. 이 디자인 결정에 대한 이유가 있습니까?
103 c++  stl  stdset 

6
vector <bool>이 STL 컨테이너가 아닌 이유는 무엇입니까?
Scott Meyers의 저서 Effective STL : 표준 템플릿 라이브러리 사용을 개선하는 50 가지 특정 방법 의 항목 18은 vector &lt;bool&gt;STL 컨테이너가 아니고 실제로 bools를 보유하지 않기 때문에 피해야한다고 말합니다 . 다음 코드 : vector &lt;bool&gt; v; bool *pb =&amp;v[0]; 컴파일되지 않고 STL 컨테이너의 요구 사항을 위반합니다. 오류: cannot convert 'std::vector&lt;bool&gt;::reference* …

6
STL 컨테이너를 필터링하는 현대적인 방법?
수년간의 C # 이후 C ++로 돌아와서 나는 현대가 무엇인지 궁금했다.-read : C ++ 11-배열을 필터링하는 방법, 즉이 Linq 쿼리와 비슷한 것을 어떻게 얻을 수 있는가? var filteredElements = elements.Where(elm =&gt; elm.filterProperty == true); 요소 벡터를 필터링하려면 ( strings이 질문을 위해)? 명시적인 메서드 를 정의 boost::filter_iterator해야하는 이전 STL 스타일 알고리즘 …
103 c++  c++11  stl 


6
문자열 c_str () 대 data ()
c_str()와 data()(STL 및 기타 구현에서) 의 차이점 c_str()은 항상 null로 종료되는 반면 data()그렇지 않은 경우 여러 곳을 읽었습니다 . 내가 실제 구현에서 본 한, 그들은 동일하거나 data()호출합니다 c_str(). 내가 여기서 무엇을 놓치고 있습니까? 어떤 시나리오에서 사용하는 것이 더 정확합니까?
102 c++  stl  c-str 

5
벡터에서 요소 지우기
지우기 방법을 사용하여 벡터에서 요소를 지우고 싶습니다. 그러나 여기서 문제는 요소가 벡터에서 한 번만 발생한다는 보장이 없다는 것입니다. 여러 번 나타날 수 있으며 모두 지워야합니다. 내 코드는 다음과 같습니다. void erase(std::vector&lt;int&gt;&amp; myNumbers_in, int number_in) { std::vector&lt;int&gt;::iterator iter = myNumbers_in.begin(); std::vector&lt;int&gt;::iterator endIter = myNumbers_in.end(); for(; iter != endIter; ++iter) { if(*iter …
101 c++  vector  stl  erase 

3
gcc std :: unordered_map 구현이 느립니까? 그렇다면-왜?
우리는 C ++로 고성능 핵심 소프트웨어를 개발하고 있습니다. 거기에 동시 해시 맵이 필요하고 구현되었습니다. 그래서 우리는 동시 해시 맵이 .NET과 비교하여 얼마나 느린 지 알아 내기 위해 벤치 마크를 작성했습니다 std::unordered_map. 그러나 std::unordered_map엄청나게 느린 것 같습니다 ... 그래서 이것은 우리의 마이크로 벤치 마크입니다 google::dense_hash_map. null 값이 필요함) : boost::random::mt19937 rng; …

4
C ++ const 맵 요소 액세스
연산자 []를 사용하여 const C ++ 맵의 요소에 액세스하려고했지만이 메서드는 실패했습니다. 또한 "at ()"를 사용하여 동일한 작업을 수행하려고했습니다. 이번에는 효과가있었습니다. 그러나 "at ()"를 사용하여 const C ++ 맵의 요소에 액세스하는 방법에 대한 참조를 찾을 수 없습니다. "at ()"는 C ++ 맵에 새로 추가 된 함수입니까? 이에 대한 자세한 정보는 어디에서 …
100 c++  stl  map  const 

2
std :: ssize ()가 C ++ 20에 도입 된 이유는 무엇입니까?
C ++ 20std::ssize() 은 아래와 같이 무료 기능을 도입했습니다 . template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; 가능한 구현은를 사용하여 cl ass C 멤버 함수의 static_cast반환 값을 서명 된 대응 항목 으로 변환하는 것 같습니다 .size() size()C 의 멤버 함수는 항상 음이 아닌 값을 반환 하기 …
99 c++  stl  unsigned  signed  c++20 


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