728x90
반응형

프로그래밍 언어/C++ 82

표준 C ++ / C ++ 11 / C를 사용하여 파일이 존재하는지 확인하는 가장 빠른 방법

질문 : 표준 C ++ / C ++ 11 / C를 사용하여 파일이 존재하는지 확인하는 가장 빠른 방법은 무엇입니까? 표준 C ++ 11, C ++ 또는 C에 파일이 있는지 확인하는 가장 빠른 방법을 찾고 싶습니다. 수천 개의 파일이 있고 파일에 대해 작업을 수행하기 전에 모든 파일이 있는지 확인해야합니다. 다음 함수에서 /* SOMETHING */ 대신 무엇을 쓸 수 있습니까? inline bool exist(const std::string& name) { /* SOMETHING */ } 답변 글쎄요, 저는 이러한 방법을 각각 100,000 번 실행하는 테스트 프로그램을 함께 던졌습니다. 절반은 존재하는 파일이고 절반은 그렇지 않은 파일입니다. #include #include #include #inclu..

C ++에서 ifstream을 사용하여 한 줄씩 파일 읽기

질문 : C ++에서 ifstream을 사용하여 한 줄씩 파일 읽기file.txt의 내용은 다음과 같습니다.5 3 6 4 7 1 10 5 11 6 12 3 12 4 여기서 5 3 은 좌표 쌍입니다. C ++에서이 데이터를 한 줄씩 어떻게 처리합니까?첫 번째 줄을 얻을 수 있지만 파일의 다음 줄은 어떻게 얻습니까?ifstream myfile; myfile.open ("file.txt"); 답변먼저 ifstream 만듭니다.#include std::ifstream infile("thefile.txt"); 두 가지 표준 방법은 다음과 같습니다.모든 줄이 두 개의 숫자로 구성되어 있고 토큰별로 읽는다고 가정합니다. int a, b; while (infile >> a >> b) { // process pair (..

정적 std :: map 초기화<int, int> C ++에서

질문 : 정적 std :: map 초기화 C ++에서정적지도를 초기화하는 올바른 방법은 무엇입니까? 초기화 할 정적 함수가 필요합니까?답변C ++ 11 사용 :#include using namespace std; map m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}}; Boost.Assign 사용 :#include #include "boost/assign.hpp" using namespace std; using namespace boost::assign; map m = map_list_of (1, 'a') (3, 'b') (5, 'c') (7, 'd'); 출처 : https://stackoverflow.com/questions/138600/initializing-a-sta..

C ++에서 가상 함수가 필요한 이유

질문 : C ++에서 가상 함수가 필요한 이유는 무엇입니까? 저는 C ++를 배우고 있으며 가상 기능을 배우고 있습니다. 내가 읽은 (책과 온라인에서) 가상 함수는 파생 클래스에서 재정의 할 수있는 기본 클래스의 함수입니다. virtual 을 사용하지 않고 파생 클래스의 기본 함수를 재정의 할 수있었습니다. 그래서 내가 여기서 무엇을 놓치고 있습니까? 나는 가상 기능에 더 많은 것이 있다는 것을 알고 있으며, 그것이 중요한 것 같아서 그것이 정확히 무엇인지 분명히하고 싶습니다. 온라인에서 정답을 찾을 수 없습니다. 답변 virtual 기능이 무엇인지 이해하는 방법뿐만 아니라 필요한 이유입니다. 다음 두 클래스가 있다고 가정 해 보겠습니다. class Animal { public: void eat() { ..

C ++ 여러 줄 문자열 리터럴

질문 : C ++ 여러 줄 문자열 리터럴Perl과 같이 C ++에서 여러 줄의 일반 텍스트, 상수 리터럴을 사용하는 방법이 있습니까? #include 파일을 파싱하는 트릭일까요? 하나는 생각할 수 없지만, 그거 좋겠네요. 나는 그것이 C ++ 0x에있을 것이라는 것을 안다.답변글쎄요 .. 가장 쉬운 방법은 인접한 문자열 리터럴이 컴파일러에 의해 연결된다는 사실을 사용하는 것입니다.const char *text = "This text is pretty long, but will be " "concatenated into just a single string. " "The disadvantage is that you have to quote " "each part, and newlines must be li..

C ++에서 개인 정적 멤버를 초기화하는 방법

질문 : C ++에서 개인 정적 멤버를 초기화하는 방법은 무엇입니까? C ++에서 개인 정적 데이터 멤버를 초기화하는 가장 좋은 방법은 무엇입니까? 내 헤더 파일에서 이것을 시도했지만 이상한 링커 오류가 발생합니다. class foo { private: static int i; }; int foo::i = 0; 클래스 외부에서 개인 멤버를 초기화 할 수 없기 때문이라고 생각합니다. 그래서 이것을하는 가장 좋은 방법은 무엇입니까? 답변 클래스 선언은 헤더 파일 (또는 공유되지 않는 경우 소스 파일)에 있어야합니다. 파일 : foo.h class foo { private: static int i; }; 그러나 초기화는 소스 파일에 있어야합니다. 파일 : foo.cpp int foo::i = 0; 초기화가 헤..

C ++에서 extern을 사용하는 경우

질문 : C ++에서 extern을 사용하는 경우 "Think in C ++"를 읽고 있는데 방금 extern 선언을 소개했습니다. 예를 들면 : extern int x; extern float y; 나는 의미 (정의없는 선언)를 이해한다고 생각하지만 그것이 언제 유용하다고 증명되는지 궁금합니다. 누군가 예를 들어 줄 수 있습니까? 답변 이것은 전역 변수가있을 때 유용합니다. 헤더에 전역 변수의 존재 를 선언하여 헤더를 포함하는 각 소스 파일이 이에 대해 알지만 소스 파일 중 하나에서 한 번만 "정의"하면됩니다. 명확히하기 위해 extern int x; x int 유형의 객체가 어딘가에 존재 함을 컴파일러에 알립니다. 그것이 존재하는 위치를 아는 것은 컴파일러의 일이 아닙니다. 단지 타입과 이름 만 알고..

728x90
반응형