Câu h?i thư?ng g?p v? thư vi?n chu?n C++

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 154419 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này tr?nh bày m?t danh sách các câu h?i thư?ng g?p (Câu h?i thư?ng g?p) v? các thư vi?n chu?n C++ và câu tr? l?i cho nh?ng câu h?i. Đ? có thêm thông tin v? các thư vi?n chu?n C++, tham kh?o các Đ?c đi?m k? thu?t tiêu chu?n ANSII và thư vi?n MSDN.

THÔNG TIN THÊM

Thư vi?n chu?n C++ câu h?i thư?ng g?p

Q1: Nh?ng g? hi?n thư vi?n chu?n C++ ch?a?

A1: Thư vi?n chu?n C++ cung c?p m?t khuôn kh? m? r?ng và ch?a các thành ph?n cho h? tr? ngôn ng?, ch?n đoán, ti?n ích chung, dây, mi?n đ?a phương, tiêu chu?n m?u thư vi?n (container, v?ng l?p, thu?t toán, và numerics), và đ?u vào/đ?u ra.

Thư vi?n chu?n C++ có th? chia thành các lo?i sau:
  1. Các thành ph?n tiêu chu?n m?u thư vi?n (STL) cung c?p m?t C++ chương tr?nh v?i quy?n truy c?p vào m?t t?p h?p con c?a các r?ng r?i nh?t s? d?ng các thu?t toán và d? li?u các c?u trúc. STL tiêu đ? có th? đư?c nhóm l?i thành ba khái ni?m chính t? ch?c:
    • Thùng ch?a: các l?p h?c tiêu b?n h? tr? ph? bi?n cách đ? s?p x?p d? li?u, như v?y as <vector>, <list>, <deque>, <stack>, <queue>, <set>, and <map>.</map></set></queue></stack></deque></list></vector>
    • Các thu?t toán: tiêu b?n ch?c năng đ? th?c hi?n các ho?t đ?ng ph? bi?n trên các các đ?i tư?ng, ch?ng h?n như <functional>, <algorithm>, và <numeric>.</numeric></algorithm></functional>
    • V?ng l?p: Keo dán các thu?t toán và container v?i nhau, ch?ng h?n như <utility>, <iterator>, and <memory>.</memory></iterator></utility>
  2. Đ?u vào/đ?u ra bao g?m các thành ph?n cho t? khai v? phía trư?c c?a iostreams (<iosfwd>), đư?c xác đ?nh trư?c iostreams đ?i tư?ng (<iostream>), các l?p cơ s? iostreams (<ios>), d?ng đ?m (<streambuf>), d?ng đ?nh d?ng và thao tác (<iosmanip>, <istream>, <ostream>), chu?i d?ng (<sstream>), và t?p tin su?i (<fstream>).</fstream></sstream></ostream></istream></iosmanip></streambuf></ios></iostream></iosfwd>
  3. Thông tin thư tiêu chu?n C++ khác bao g?m:
    • H? tr? ngôn ng?: các thành ph?n cho đ?nh ngh?a lo?i thông thư?ng đư?c s? d?ng trong su?t các thư vi?n (<cstddef>), đ?c tính c?a các lo?i đư?c xác đ?nh trư?c (<limits>, <cfloat>, <climits>), ch?c năng h? tr? b?t đ?u và ch?m d?t c?a m?t chương tr?nh C++ (<cstdlib>), h? tr? cho b? nh? năng đ?ng qu?n l? (<new>), h? tr? cho đ?ng lo?i nh?n d?ng (<typeinfo>), h? tr? cho ngo?i l? ch? bi?n (<exception>), và h? tr? khác cho th?i gian ch?y (<cstdarg>, <ctime>, <csetlmp>, <csignal>).</csignal></csetlmp></ctime></cstdarg></exception></typeinfo></new></cstdlib></climits></cfloat></limits></cstddef>
    • Ch?n đoán: các thành ph?n đ? báo cáo m?t s? lo?i đi?u ki?n đ?c bi?t (<stdexcept>), tài li?u v? chương tr?nh kh?ng đ?nh (<cassert>), và m?t bi?n toàn c?u cho m? s? l?i (<cerrno>).</cerrno></cassert></stdexcept>
    • Dây: các thành ph?n cho chu?i các l?p h?c (<string>) và Ti?n ích null ch?m d?t chu?i (<cctype>, <cwctype>, <cwchar>).</cwchar></cwctype></cctype></string>
    • Đ?a phương hoá: các thành ph?n mà các chương tr?nh C++ có th? s? d?ng đ? đóng gói văn hóa s? khác bi?t. Các mi?n đ?a phương s? bao g?m h? tr? qu?c t? k? t? phân lo?i và chu?i collation, s?, ti?n t?, và ngày/gi? đ?nh d?ng và phân tích, và tin nh?n truy (<locale>, <clocale>).<b00></b00></clocale></locale>


Q2: S? khác bi?t gi?a C-th?i gian ch?y và thư vi?n chu?n C++ là g?? Thư vi?n nh?ng g? s? thư vi?n Runtime tùy ch?n biên d?ch như /ML, /MT, /MD, / MLd, / MTd, và / MDd bao g?m?

A2: Visual c ++ 5,0 và sau này bao g?m các thư vi?n sau trong b? sung cho các thư vi?n Microsoft Foundation Classes (MFC):
  • Thư vi?n C-th?i gian ch?y cơ b?n
  • Thư vi?n chu?n C++
Thu g?n b?ng nàyBung r?ng b?ng này
Thư vi?n lo?i và tr?nh biên d?ch liên quan đ?n thi?t b? chuy?n m?chCơ b?n C Runtime thư vi?n / thư vi?n chu?n C++
Đ?a đơn-ren (/ ML)LIBC.LIB / LIBCP.LIB
G? l?i đơn-ren (/ MLd)LIBCD.LIB / LIBCPD.LIB
Multithreaded (/ MT)LIBCMT.LIB / LIBCPMT.LIB
G? l?i Multithreaded (/ MTd)LIBCMTD.LIB / LIBCPMTD.LIB
Multithreaded DLL (/ MD)MSVCRT.LIB / MSVCPRT.LIB
G? l?i Multithreaded /DLL (MDd)MSVCRTD.LIB / MSVCPRTD.LIB
Chú ý /ML và /MLd thư vi?n tr?nh biên d?ch tùy ch?n cho thư vi?n đơn-ren t?nh đ? b? lo?i b? trong Visual C++ 2005 và trong phiên b?n sau này c?a Visual C++.

Chú ý MSVCPRT.lib và MSVCPRTD.lib thư vi?n t?nh và không có thư b?t k? liên k?t năng đ?ng vi?n (dll) tr?c ti?p liên quan đ?n h?. Các thư vi?n đang c?ng ph? thu?c vào MSVCRT.lib và MSVCRTD.lib, tương ?ng. N?u b?n có b?t k? các ?ng d?ng s? d?ng MSVCPRT.lib ho?c MSVCPRTD.lib và b?n s? d?ng "b? qua M?c đ?nh thư vi?n")/ G?T ho?c NODEFAULTLIB) l?a ch?n, h?y ch?c ch?n đ? liên k?t MSVCPRT.lib (ho?c MSVCPRTD.lib) và MSVCRT.lib (ho?c MSVCRTD.lib) v?i các ?ng d?ng. N?u không, b?n s? nh?n đư?c linker l?i (LNK2001: chưa đư?c gi?i quy?t externals trong MSVCPRT.lib ho?c MSVCPRTD.lib) khi liên k?t đơn c?a b?n.) Tùy thu?c vào các tiêu đ? b?n s? d?ng trong m? c?a b?n, m?t thư vi?n t? các tiêu chu?n C++ thư vi?n c?ng có th? liên k?t.

Các t?p tin tiêu đ? <use_ansi.h> ch?a #pragma báo cáo mà l?c lư?ng thư vi?n chu?n C++ đ? đư?c liên k?t trong. T?t c? thông tin thư tiêu chu?n C++ bao g?m <use_ansi.h>: N?u b?n bao g?m b?t k? tiêu đ? tiêu chu?n C++ trong c?a b?n ?ng d?ng, thư vi?n chu?n C++ s? đư?c liên k?t theo m?c đ?nh.</use_ansi.h></use_ansi.h>

Tiêu chu?n C++ đ?u thư

Thu g?n b?ng nàyBung r?ng b?ng này
THU?T TOÁN BITSET PH?C T?P DEQUE
NGO?I L? FSTREAM CH?C NĂNG IOMANIP
IOS IOSFWD IOSTREAM ISTREAM
ITERATOR GI?I H?N DANH SÁCH MI?N Đ?A PHƯƠNG
B?N Đ? B? NH? S? OSTREAM
HÀNG Đ?I THI?T L?P SSTREAM NGĂN X?P
STDEXCEPT STREAMBUF CHU?I STRSTREAM
TYPEINFO TI?N ÍCH VALARRAY VECTƠ


Q3: Làm th? nào đ? tôi có th? gi? l?i các ch?c năng iostream c? t? Visual C++.NET 2003 ho?c t? phiên b?n trư?c c?a Visual C++ n?u tôi c?ng d? án c?a tôi t? m?t phiên b?n c??

A3: N?u b?n mu?n gi? l?i thư vi?n iostream c? (<iostream.h>), bao g?m m?t ho?c chi ti?t c?a các t?p tin tiêu đ? iostream c? trong m? c?a b?n. Không s? d?ng các tiêu chu?n m?i Thông tin thư C++. B?n không th? k?t h?p các cu?c g?i đ?n thư vi?n iostream c? và m?i Thư vi?n chu?n C++.<b00></b00></iostream.h>



Q4: Làm th? nào đ? tôi th?c hi?n các thư vi?n chu?n C++ thư vi?n m?c đ?nh tôi ?ng d?ng?

A4: N?u b?n mu?n làm cho các thư vi?n chu?n C++ m?c đ?nh, bao g?m m?t ho?c nhi?u các tiêu đ? tiêu chu?n C++ m?i. H?y nh? r?ng, b?n không th? tr?n các cu?c g?i đ?n iostream c? và m?i thư vi?n chu?n C++. Thư vi?n hi?n có (liên k?t t?nh ho?c năng đ?ng) mà s? d?ng c? iostream ch?c năng s? ph?i S?a đ?i đ? s? d?ng ch?c năng iostream thư vi?n chu?n C++.



Q5: tôi mu?n s? d?ng tiêu chu?n C++ thư vi?n trong m?t ?ng d?ng Microsoft Foundation Classes (MFC). S? này gây ra b?t k? xung đ?t v?i các thư vi?n C-th?i gian ch?y?

A5: Không. MFC không s? d?ng b?t k? ch?c năng C-Runtime s? xung đ?t v?i các thư vi?n chu?n C++.



Q6: T?i sao tôi nh?n đư?c l?i "l?i C2065: 'cout': undeclared đ?nh danh" m?c dù tôi đ? bao g?m <iostream>?</iostream>

A6: Thư vi?n chu?n C++ là th?c hi?n trong không gian tên riêng c?a m?nh "tiêu chu?n". H?y ch?c ch?n đ? thêm các báo cáo
using namespace std;
				
trong nh?ng ngày đ?u c?a chương tr?nh c?a b?n ho?c đ? vư?t qua v?ng lo?i m?i tiêu chu?n C++ thư vi?n đ?nh danh v?i không gian tên std, ví d?, std::cout.



Q7: T?i sao tôi nh?n đư?c "biên d?ch l?i C2371: 'đ?nh danh' redefinition; khác nhau ki?u cơ b?n"?

A7:Trong các phiên b?n c?a Visual C++ đư?c s?m hơn Visual C++ 2005, tr?n tiêu đ? tiêu chu?n C++ và c? iostream tiêu đ? nguyên nhân l?i này, ngay c? khi h? đư?c bao g?m trong t?p tin m? ngu?n khác nhau. Sau đây là các tiêu đ? khác nhau:

C? iostream Headers

Thu g?n b?ng nàyBung r?ng b?ng này
FSTREAM.H IOMANIP.H
IOS.H IOSTREAM.H
ISTREAM.H OSTREAM.H
STDIOSTR.H STREAMB.H
STRSTREA.H

Tiêu chu?n C++ đ?u thư

Thu g?n b?ng nàyBung r?ng b?ng này
THU?T TOÁN BITSET PH?C T?P DEQUE
NGO?I L? FSTREAM CH?C NĂNG IOMANIP
IOS IOSFWD IOSTREAM ISTREAM
ITERATOR GI?I H?N DANH SÁCH MI?N Đ?A PHƯƠNG
B?N Đ? B? NH? S? OSTREAM
HÀNG Đ?I THI?T L?P SSTREAM NGĂN X?P
STDEXCEPT STREAMBUF CHU?I STRSTREAM
TYPEINFO TI?N ÍCH VALARRAY VECTƠ


H8: tôi có m?t d? án đ? đư?c xây d?ng v?i tùy ch?n "B? qua thư vi?n Default" (/ G?T ho?c / NODEFAULTLIB). V?i Visual C++ 5.0 ho?c sau này, tôi nh?n đư?c linker l?i "LNK2001: bi?u tư?ng bên ngoài chưa đư?c gi?i quy?t 'bi?u tư?ng';" trên t?t c? các ch?c năng iostream các cu?c g?i. Nh?ng g? đ? thay đ?i?

A8: Các ch?c năng iostream đ? đư?c g? b? t? C-Runtime thư vi?n.

N?u b?n đang s? d?ng các ch?c năng iostream c?, b?n ph?i thêm m?t thư vi?n thêm như sau: LIBCI.lib (đơn-ren <ml>), LIBCIMT.lib (multithreaded <mt>), hay MSVCIRT.lib (multithreaded dll <md>). Các thư vi?n đ? đư?c g? b? t? Visual C++ 2005 và t? các phiên b?n sau c?a Visual C++.<b00></b00></md></mt></ml>

N?u b?n đang s? d?ng các ch?c năng iostream m?i bao g?m v?i thư vi?n chu?n C++, b?n ph?i thêm m?t thư vi?n thêm như sau: LIBCP.lib (đơn-ren <ml>), LIBCPMT.lib (multithreaded <mt>), ho?c MSVCPRT.lib (multithreaded dll <md>).<b00></b00></md></mt></ml>

Không pha tr?n khác nhau các phiên b?n c?a các thư vi?n. Ví d?, n?u b?n đang s? d?ng đơn-ren Phiên b?n c?a thư vi?n C-th?i gian ch?y, b?n c?ng ph?i s? d?ng phiên b?n đ?a đơn-ren c? iostream thư vi?n ho?c thư vi?n chu?n C++.

B?n không th? tr?n các cu?c g?i đ?n các ch?c năng thư vi?n iostream c? và m?i thư vi?n chu?n C++ IOStream ch?c năng.



H9: tôi nh?n đư?c c?nh báo tr?nh biên d?ch C4786 và/ho?c C4788. Không ai trong s? các bi?u tư?ng trong chương tr?nh c?a tôi là b?t c? nơi nào g?n 255 k? t?. Nh?ng g? gây ra Đi?u này?

A9: C4786/C4788 đư?c ban hành khi bi?u tư?ng c?a m?t tên vư?t quá 255 k? t? Chi?u dài. Đi?u này thư?ng x?y ra v?i m?u l?p, và STL s? d?ng l?p h?c tiêu b?n r?ng r?i.

B? qua c?nh báo này thư?ng là an toàn. S? d?ng m?t #pragma c?nh báo (vô hi?u hóa: 4786,4788) đ? ngăn ch?n các tin nh?n.



Q10: tôi nh?n đư?c c?nh báo tr?nh biên d?ch "C4530: C++ ngo?i l? x? l? đư?c s? d?ng, nhưng bung ra ng? ngh?a không đư?c kích ho?t. Ch? r? - GX." Đi?u này có ngh?a là g??

A10: Các chương tr?nh s? d?ng thư vi?n chu?n C++ ph?i đư?c biên d?ch v?i X? l? ngo?i l? C++ đư?c kích ho?t. C++ x? l? ngo?i l? có th? đư?c kích ho?t b?i:
  • Ch?n các Cho phép x? l? ngo?i l? tùy ch?n trong các C ++ Th? lo?i ngôn ng? c?a các C/C ++ th? tab trong các Thi?t l?p d? án h?p tho?i. - hay -

  • B?ng cách s? d?ng các /GX tr?nh biên d?ch chuy?n.


C11: tôi nh?n đư?c biên d?ch l?i C2146, theo sau là C2065, và cu?i cùng C2143, t?t c? ch? đ?n cùng m?t d?ng trong m? ngu?n c?a tôi. Đi?u này có ngh?a là g??

A11: Này chu?i các l?i có th? đư?c gây ra b?i các lo?i sau đây xây d?ng:
vector<int, allocator<int>>iV;
				
V?n đ? do các liên ti?p ">>" ? ph?n cu?i c?a các tuyên b?. Gi?i pháp là đ? đ?t m?t không gian gi?a hai nhân v?t, v? v?y các xây d?ng s? tr? thành:
vector<int, allocator<int> > iV;
				
Đi?u này là phù h?p v?i ANSII đ? xu?t đ?c đi?m k? thu?t.

Thu?c tính

ID c?a bài: 154419 - L?n xem xét sau cùng: 18 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual C++ 2008 Express Edition
T? khóa: 
kbinfo kbmt KB154419 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:154419

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com