ndk中配置好了c++11標準以及stl,仍然無法使用stl裡的函式
1樓:收到飛灑
android ndk從r5b版本開始有官方支援的stl了塌緩,有乙個crystax版本早已經支援。官方的支援有兩個版本一團圓模個是gnu的,乙個是stlport。如果你需要在你的ndk程式中使用stl,那麼需要在檔案中新增乙個選項,就是app_stl :
stlport_static。 其中app_stl的取值有以下四種: system --系統預設的最小支援的c++執行時庫 stlport_static --以靜態鏈結的方式使用stlport版本的stl stlport_shared --以動態鏈結的方式使用stlport版本的stl gnustl_static --以靜態鏈結的方式使用gnu版本的stl如果你和我一樣並沒有使用和,而是使用code::
blocks或者visual studio 2010,那麼在配置環境時,如果需要stl的支援,那麼就需要注意自己要指定stl的包含路徑。鏈結就根據需要自己鏈結不同的版本。請注意,stlport有靜態鏈結和動態鏈結兩種方腔散式,而gnu的僅有靜態鏈結方法。
另外乙個需要注意的就是官方提供的這個stlport版本不支援rtti和異常,換言之,如果你使用了stlport版本的stl,則不能使用-fexceptions和-frtti這兩個編譯選項。
2樓:匿名使用者
樓上一看就是灌水混分的,雖然我不是來幫你解決問題的飢早。
建爛大雀議關閉提問,到android開仿做發的專業論壇發貼諮詢。
你也可以試試將圖中的一些中文路徑改為英文路徑。
c++中的stl標準庫到底該不該用
3樓:小熙自**
首先,c++搞的不熟,不好說c++的stl好壞。(stl在c++中的好壞)
其次,如果換c,stl能做的事情,c裡面一樣可以很快做出來。
再次,stl和c的#define很像,經常被人噴,也經常被對應對高手熟練使用。
最後,如果涉及到底層或系統級的**,最好不要用stl,雖然對c++不熟練,但至少知道stl生成的東西(優點所在),不是你可控的東西(也就是缺點)。
4樓:哥德堡快遞
如果你覺得自己做的輪子比磚家們做的更好更圓,那就別用了。
5樓:網友
用啊,這麼好用的東西,不用浪費了。
c++ stl的容器的問題,新增函式。
6樓:網友
理論是可以的。比如:
#include
template>
class mylist : public std::list<_tp, _alloc>
不過從比較嚴格的編碼規範來說,不太推薦從stl容器繼承。因為,嚴格的說,乙個類如果它允許有派生類,它的析構數應該被定義虛擬函式,而stl容器的解構函式並沒有被定義的虛擬函式。
最安全的方式是使用組合及**的模式。不過使用組合並不優雅,你需要增加好多重複的**(要把list的每個函式重新定義一次 :(
7樓:青雲當自致
你要實現什麼功能,一般通過這些函式都是可以實現的。你繼承之後可能會造成**冗餘,臃腫。
noip用c還是c++好,c++能用stl嗎
8樓:匿名使用者
noip裡c++是可以使用stl的。
但是有一條限制 就是不能用雙下劃線開頭的stl 如__int128之類的。
但是那個在noi_linux裡是可以正常執行的要是算0分只能人工查檢 但誰知道工作人員會不會隨機翻你**呢查出來的話算ce 有勇氣您可以用。
9樓:青花惡魔
stl已經解禁,可以使用,給c++黨帶來了不少優勢。stl在不開優化的情況下不是最快的,但是減少寫**的麻煩,而且**一定正確。建議使用和c++差距不是很大,c的**不用改就能在c++上執行,所以從c公升級到c++幾乎不用做任何事情,頂多學一些c++的比c方便的語法。
10樓:嗚哩哇啦路飛
你說的noip應該是中學生的程式設計比賽吧?程式語言看自己的情況。一般這種比賽主要是考你的演算法,像c++的類用得少,一般就是fstream用於輸入、輸出,所以c和c++都差不多。
至於stl當然就不能用了,否則對其他程式語言不公平,不過據說用於快速排序的qsort函式是可以使用的。
c++中的stl是怎麼回事啊
11樓:網友
stl是c++的標準模板庫,如iostream, fstream, string等都包含其中。在使用時用標頭檔案把它引進來就可以了。如:
#include//引用輸入輸出流。
#include//引用棧模板。
#include//引用字串模板。
using namespace std;
一種簡單的理解是可以把stl看成是c++的一中「庫函式」,能用簡單的語句實現很多功能的「庫函式」。
另一種簡單的理解是可以把stl看成是c++已經做好的「類」(如:string),它提供了很多訪問方法。
舉個例子:用c++實現字串"12345"和"67890"連線,並測其長度!
方法一:使用簡單語句。
#include
using namespace std;
void main()
s2[6]=;
int lenth1,lenth2,i,slenth;
lenth1=strlen(s1);
lenth2=strlen(s2);
for(i=lenth1; i
#include//加入標頭檔案。
using namespace std;
void main()
string s1="12345",s2="67890",s;
int slenth;
s=s1+s2; //直接相加,系統已經實現了+過載。
slenth=; //直接呼叫成員函式。
cout《這個**是c++之父談stl的,可以看看!
12樓:網友
stl可以提高演算法的效率,並實現了c++原來沒有實現的一些內容,簡化了**的編寫。
stl是什麼?怎麼使用c++中的stl?
13樓:
stl(standard template libary),標準模板庫。
這是c++標準的一部分。關於這個庫有不少歷史可以說,侯捷的《stl原始碼剖析》講了不少。stl有好幾種不同的實現,微軟也有自己的實現。
關於使用,比如你用了下面的語句:
#include
就是使用了標準模板庫裡的 vector.
然後你這樣宣告向量:
vectora; //向量a包含的元素是int型的。
vectorb; //向量b包含的元素是double型的。
你可以查詢對應的標頭檔案,它們都是以原始碼形式出現的,不過裡面的符號定義的讓人眼花繚亂,還是找書看比較好。
標準模板庫包含了資料結構和演算法等方面的內容,比較複雜,學習之前要有十足下信心。
14樓:網友
哈哈,stl
難道是傳說中的夢幻裡的獅駝嶺嘎嘎。
如何在android app中使用stl庫
15樓:匿名使用者
system - 使用預設最小的c++執行庫,這樣生成的應用體積小,記憶體佔用小,但部分功能將無法支援。
stlport_static - 使用stlport作為靜態庫,這項是android開發網極力推薦的。
stlport_shared - stlport作為動態庫。
這個可能產生相容性和部分低版本的android韌體,目前不推薦使用。
gnustl_static - 使用 gnu libstdc++ 作為靜態庫。
預設情況下stlport是不支援c++異常處理和rtti,所以不要出現 -fexceptions 或-frtti;如果真的需要,可以消弊脊使用gnustl_static來支援標準c++的特性,但生成的檔案體積會偏大,執行效率會低一些。
支援c++異常處理,在中拿滲加入 local_cppflags +=fexceptions這句,同理支援rtti,則加入local_cppflags +=frtti,這裡再次提醒大家,第二條說的使用gnustl靜態庫,而不是stlport。
強制重新編譯 stlport ,在中加入stlport_force_rebuild :=true可以強制重新編譯stlport原始碼,由於一些原因可能自己需要修改下stlport庫,一般普通的開發者無需使用此項。
2. 在要使用stl的cpp檔案中包含相關的標頭檔案卜毀。
並且使用using namespace std;
C1證如何增加d證,c1照怎樣增駕d照?
c證滿一年就能辦理增駕d證,機動車駕駛證申領和使用規定 對於增駕的規定如下 已持有機動車駕駛證,申請增加準駕車型的,應當在本記分週期和申請前最近乙個記分週期內沒有記滿分記錄。申請增加中型客車 牽引車 大型客車準駕車型的,還應當符合下列規定 一 申請增加中型客車準駕車型的,已取得駕駛城市公交車 大型貨...
現在c1增駕到b1需要哪些手續,現在C1增駕到B1需要哪些手續
你好!已持有 c1 準駕車型駕駛證三年以上,而且年齡在21 50週歲之間,申請增加 b1 準駕車型的,應在本記分週期 今年 和申請前最近一個記分週期 去年 內沒有滿分 12分 記錄,便即可向戶籍地車管所申請增駕,因為法規規定辦理增加 b1 業務只能在駕駛人戶籍地車管所進行申請,而不在暫住地進行。經考...
C1駕照能開幾米的貨車,c1駕照能開多大的貨車?最長多少
c1駕照能開長度不超過6米的貨車。根據 機動車駕駛證申領和使用規定 c1駕駛證準駕範圍為小型 微型載客汽車 及輕型 微型載貨汽車 輕 小 微型專項作業車 小型載客汽車乘坐人數小於或等於9人。根據這項標準要求,c1證不能駕駛多出9座的車輛 c1駕照能開長度不超過6米的貨車。c1駕駛證準駕範圍為小型 微...