요약하면 파이프는 파괴적인 읽기가있는 스트림/FIFO 스타일 컨테이너입니다. 한 번에 데이터 덩어리를 모두 복사하고 get
및 put
과 같은 기능을 단일 바이트에 대해 수행하는 방법은 read()
입니다. read
또는 get
이 반환되면 파일에서 복사 된 데이터가 파일 또는 다른 컨테이너 유형과 달리 파이프의 내부 버퍼에서 제거됩니다.파이프처럼 작동하는 C++ STL 클래스가 있습니까?
STL 컨테이너의 대부분 (모두?)은 버퍼 명령에 유사한 read()
을 제공하지 않습니다. pop_many()
회원이있는 fifo 컨테이너 유형이 있습니까?
stringstream
은 스트림이 채워질 때까지 내부 읽기 포인터와 향후 읽기가 유지되므로 생각할 수있는 가장 가까운 것입니다. 컨테이너는 API 관점에서 비어 있지만 소비 된 데이터는 수동으로 가비지 수집해야합니다.
C++에서 이와 동일한 컨테이너 또는 스트림 클래스가 있습니까? 아니면 롤업 예 (stringstream 예와 같이) 문제입니까?
아마도 대기열에 있습니까? – Gir
queue.pop() 주위에 루프를 넣을 수는 있지만 효율적이지 않습니다. 나는 큰 덩어리의 데이터를 제거 할 수 있기를 원하며 큐/FIFO는 제거한 후에 자동으로 크기가 조정됩니다. –
무엇이 필요합니까? –