找出一個有序字串數組arr中值等於字串v的元素的序號,如果有多個元素滿足這個條件,返回其中序號最大的? 類似:在有序整數數組中尋找指定數值,若有多個元素滿足這個條件,返回其中序號最小的?#include <iostream>using namespace std;int binary_search(int *arr, int len, int key){if (arr == NULL || len <= 0)return -1;int minIndex = 0,
1. 只能在堆(heap)上建立對象/禁止產生棧(stack)對象 建立棧對象時會移動棧頂指標以“挪出”適當大小的空間, 再在這個空間上直接調用對應的建構函式以形成一個棧對象, 而當函數返回時會調用其解構函式釋放這個對象, 再調整棧頂指標收回那塊棧記憶體, 在這個過程中是不需要operator new/delete操作的, 所以將operator new/delete設定為private不能達到禁止產生棧(stack)對象的目的. 把解構函式定義為private存取權限,
瀏覽器用過很多,用了1年MyIE2,覺得速度太慢,記憶體消耗大,換用GreenBrowser,剛開始的時候覺得還不錯,綠色,佔用記憶體小,但是 後來也逐漸發現也有記憶體消耗增加快,瀏覽器宕機的問題。我的Linux虛擬機器裡倒是一直用FireFox,但是後來用了version3版本後,突然愛上 了這個Browser,速度快,介面感觀舒適,記憶體消耗不大。用FireFox開啟相同網頁的速度平均比GreenBrowser和IE6(沒用IE7,
Qt中可以靈活的使用層疊樣式表(CSS),其文法和css很相似。因為HTML CSS的靈活性,可以很方便的為QT介面設計自己需要的外觀。QT4.8各組件Style Sheets的用法樣本在這裡:http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qlineeditStyle
參照書上的樣本寫的代碼,出現此種問題。沒有其他的問題,就只有這一個問題,我想可能使cuda檔案哪裡出問題了,到底是哪裡的問題呢?今天在吃飯時,考慮儲存空間模型,全域儲存空間和共用儲存空間時,默默計算一番,偶然想到一個塊的共用儲存空間只有16KB(對於本人及其的顯卡),而我分配的儲存空間64*64*2,除以1024後,這樣算只有8KB,但資料都是float(最初計算時當成byte再算,還是要腦子清醒啊!),所以是32KB,已經超過了能容納的大小。所以出現此問題的原因是需要的儲存空間大小超過了實際有
QT庫中是沒有串口操作類的,但是網路上有一些用於QT的串口操作類,用的比較多很方便的是QextSerialPort這個庫,該庫的社區連結在這http://code.google.com/p/qextserialport/看見網上寫的文章,感覺很不錯,標記一個。連結如下(一) http://www.360doc.com/content/10/0426/16/1155848_24987277.shtml(二) http://www.360doc.com/content/10/0426/16/1
前面講了使用CUDA進行矩陣乘法,如何判斷計算是否正確呢,因為矩陣很大。這裡採用的方法時將一部分資料採樣出來輸出到文本中查看結果在矩陣乘法函數中加入如下測試:在extern "C" void MatrixMultiplication_CUDA(const float* M,const float* N,float* P,int Width)函數中加入如下代碼,注意加在顯卡裝置資料複製到記憶體後。 1 //測試計算結果用 2 FILE* file1 = fopen("test_M.txt"
在高效能運算領域,GPU因為其架構的原因,在並行計算領域正發揮越來越多的用途,比如進行大量計算的遊戲、繪圖、映像演算法等方面,採用GPU進行加速可以得到顯著的效能提高。如今,Nvidia顯卡在pc上的普及,cuda正是nvidia推出的通用並行計算架構。下面在學習《深入淺出CUDA》的基礎上初次體驗下CUDA。1.工程設定這個就不多說了,建立一個空的Win32控制台應用程式,設定好工程屬性(見前篇博文)。2.程式初始化首先加好標頭檔1 #include <stdio.h>
順序表的缺點:插入和刪除需要進行元素的移動鏈表:使用節點儲存資料元素,節點的地址可以連續也可以不連續鏈表分為單鏈表/雙鏈表/迴圈鏈表,這次只說單鏈表。單鏈表中一個節點的組成:資料域+指標域,指標於中存放的是是一個指標,指向下一個節點的地址。內容包括:單鏈表的定義/初始化/尋找節點/插入節點/刪除節點先上代碼: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5
以前用諾基亞時,手機內內建有“智力王”這個遊戲,其中有個小智力項目考察的是蜘蛛在諸多蜘蛛網按一定規則爬行,然後判斷蜘蛛最後會從哪個序號的線中爬出來。本文中使用C語言實現該模型。如所示(最左端數字代表橫線的高度):遊戲規則蜘蛛從上邊任何一個編號處的線開始向下爬行,一遇到橫線就轉彎沿著橫線爬,爬到另一條豎線就沿著該豎線向下爬,遇到橫線再轉彎。。。以此爬下去,知道爬出蜘蛛網,然後判斷蜘蛛的爬出蜘蛛網的出口是編號為多少的線。就按照所示,假設蜘蛛從1開始爬,則會依次經過1-2-3-4-3-2,最後出口為2
承接該文http://www.cnblogs.com/Romi/archive/2012/04/16/2452709.html,在該文基礎上繼續講解QTreeWidget控制項的使用,同時解決該文最後留下的問題。QTreeWidget是實現樹形結構的類,在很多軟體中都可以看到類似樹形結構的介面。我做的一個樣本如,用來處理映像,最頂層節點是映像的路徑名,子節點是映像的各個波段,雙擊各個波段會顯示映像各波段的灰階映像,同時還有刪除指定節點(父節點和子節點同時刪除)的功能。效果如下所示要完成這樣的功能
上篇中http://www.cnblogs.com/Romi/archive/2012/05/09/2492363.html,出了點問題,也是後來才發現的,意識到每個塊中最多隻能有512個線程,而該文的塊大小為64*64,顯然超過了512,因此此篇將其改為16,即TILE_WIDTH=16。其他代碼還是和上篇一樣。矩陣計算模型的數組元素索引如所示測試結果如下:GPU計算時間變長了,上篇那樣數組中的元素並沒有全計算到。可以看到GPU計算時間雖然也有點多,但還是比CPU串列計算要快。此文中資料儲存在
上篇的方法是在全域儲存區中,這樣對取資料時速度回很慢,影響效能,而裝置中線程對塊中的共用儲存區中資料讀取時速度是很快的,並且在全域儲存區中進行讀取時,有很多數組元素的重複讀取。因此,先將需要計算的數組資料讀取到共用儲存區中,再利用共用儲存區中的資料進行計算,就會提高效能。但由於每個塊的共用儲存區的儲存空間一般很小,以本人8400MG為例,只有16KB,因此在一個塊內需要的資料量大時,有必要對資料進行分塊,分塊進行計算。1.分塊策略比如上篇中的:網格維度:(width/TILE_WIDTH,wid
題記:在GUI程式中,如果需要處理的某一個操作需要的時間較長時,主介面會出現假死,但實際上操作還是在進行,為了處理這種現象,讓使用者感覺操作一直在進行,可以用到進度條,QT提供了封裝的QProcessDialog類實現該功能,該類繼承自QDialog類,顯示操作的進度。官方文檔:http://qt-project.org/doc/qt-4.8/qprogressdialog.html主要的問題:進度值的擷取用法:協助文檔裡的寫的已經很清楚了,有相關介面的用法,還提供了一些執行個體。1.
在作業系統理論中有一個非常重要的概念叫做P,V原語。在研究進程互斥時常引入這個概念,將P,V操作方法與加鎖的方法相比較,來解決進程間的互斥問題。實際上,它的應用範圍很廣,不但可以解決進程管理當中的互斥問題,還可以利用此方法解決進程同步與進程通訊的問題。
1.global memory在 CUDA 中,一般的資料複製到的顯卡記憶體的部份,稱為 global memory 。這些記憶體是沒有 cache 的,而且,存取 global memory 所需要的時間(即 latency)是非常長的,通常是數百個 cycles。由於 global memory 並沒有 cache ,所以要避開巨大的 latency 的方法,就是要利用大量的 threads。假設現在有大量的threads 在同時執行,那麼當一個 thread
cuda幾個月前接觸過,當時只是瞭解大概,知道怎麼用,現在重新看了《大規模平行處理器編程實踐》這本書,書上講的是第一代的cuda架構,現在的gpu經過了fermi都已經是開普勒架構了,我使用還是G80卡,看來得與時俱進了,這是後話了。今天用cuda時照著以前的思路,出現了問題。經解決後,這裡總結如下:1.使用cuda,可以用在控制台應用程式中,也可以用於GUI中。用在GUI中時,和控制台應用程式一樣將cuda計算部分寫在函數內(.cu檔案內,因為只有.cu檔案才能經過nvcc編譯),調用該函數即
1. 標題設定MainWindow::setWindowTitle(tr("your title"));2. 標題列表徵圖設定步驟如下(在windows環境下):首先選擇一個icon表徵圖,假設為title.ico;然後建立一個文字檔,在文本中加上這樣一句話:IDI_ICON1 ICON DISCARDABLE "title.ico"
微波遙感器特點:全天候,不受天氣影響所以1991年後發射的衛星幾乎都搭載了若干個微波遙感器。1. 微波遙感器分類被動遙感器:微波輻射計:觀測海面、海水、大氣等主動遙感器:微波散射計:觀測土壤水分、地表粗糙度、海浪、鳳等 降雨雷達、雲雷達:觀測降雨強度、雲層垂直分布 微波高度計:觀測海面形狀、海流、潮汐等 成像雷達(合成孔徑/真實孔徑):觀測地表、海浪等2.
棧:一種只允許在一端進行插入和刪除的線性表。向棧中插入元素叫進棧,從棧中刪除資料元素叫出棧。棧有順序儲存和鏈式儲存,順序儲存需要事先分配棧的記憶體空間,這裡只講鏈式儲存。國際慣例,先上原始碼,再說各個模組。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 //棧的定義 6 typedef struct node{ 7 int data; 8 struct