監測點號去重

2022-08-05 18:54:13 字數 504 閱讀 5501

測量工作中,如:豎向位移監測、水平位移監測、軸力監測等,在點號的儲存過程中,經常會有重複或者不需要的點號,這就需要將其去除,再進行平差計算、儲存。

下面是我自己寫的乙個函式,以水準監測為例,希望對大家有點幫助。

首先,已知水準監測點閉合環上的點號陣列cstring * spoint;

通過平差計算,知道各點高程,但點號陣列中有轉點,即「tp」開頭的點號。

但不需要將其顯示及儲存

//刪除轉點tp***

void ccjcompute::deletepoint(int sum)

{int k=0;

for(int i=0;i//判斷點號是否為轉點

if(spoint[i].left(2)==_t("tp"))

{//將陣列多有點號、變化量、累計變化量、變化速率等都往前移動一位

for(int j=i;j//判斷改正後的陣列中是否還有轉點,進行迴圈運算

for(int i=0;i迴圈運算,直到把需要刪除的點號全部刪除完

count去重和distinct去重

有兩種去重方法 1 select count distinct id from a 這個是將所有值都放入到記憶體中,key為列值,通過hash算出有多少個key就是多少行。2 select count 1 from select 1 from a group by id a,這個是通過group b...

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

lambda 物件去重 lambda去重

lambda去重使用collectingandthen方法 list 物件中,如果根據object的單個屬性進行過濾去重,則 list userlist users.stream collect collectors.collectingandthen collectors.tocollection...