機器人CPP編程基礎-03變量類型Variables Types

機器人CPP編程基礎-02變量Variables


全文AI生成。


C++

#include<iostream>using namespace std;main()
{int a=10,b=35; // 4 bytescout<<"Value of a : "<<a<<" Address of a : "<<&a <<endl;cout<<"Value of b : "<<b<<" Address of b : "<<&b <<endl;short s=20; //2 bytescout <<"Value of s : "<< s << endl;float f1=20.03; //4 bytesdouble d1=50.55416416; //8 bytescout <<"Value of f1 : "<< f1 << endl;cout <<"Value of d1 : "<< d1 << endl;char c1='A';cout<<c1<<endl;string s1="Hello Tridib";cout<<s1<<endl;string s2="Welcome to CPP !";cout<<s2<<endl;string combineStrings=s1+", "+s2;cout<<combineStrings<<endl;bool b1=true; //Boolean is true or false. FALSE IS ALWAYS ZERO, EVERY OTHER NUMBER IS TRUE.cout<<b1<<endl;b1=1515;cout<<b1<<endl;b1=-445;cout<<b1<<endl;b1=0;cout<<b1<<endl;//Positive numbers or unsigned numbers. Increases the positive range.unsigned short int u1=60445;cout<< u1 <<endl;const string myname="Tridib";cout << myname << endl;}

該代碼是用C++編寫的,它包含了各種數據類型的聲明和初始化,以及如何使用cout語句來打印這些變量的值和地址。下面是每行的詳細解析:

以上就是對這段代碼的詳細解析。

  1. #include<iostream>: 包含輸入/輸出流的庫。這使得程序可以使用輸入和輸出功能。
  2. using namespace std;: 聲明使用std命名空間。std是標準縮寫,表示標準庫。這樣,我們就可以直接使用標準庫中的名字,而不用在每個名字前都寫std::
  3. main(): 程序的主函數,所有C++程序都從這里開始執行。
  4. int a=10,b=35;: 聲明兩個整數變量a和b并初始化為10和35。
  5. cout<<"Value of a : "<<a<<" Address of a : "<<&a <<endl;: 使用cout打印"Value of a : "和變量a的值,然后打印"Address of a : "和變量a的地址。&操作符用于獲取變量的內存地址。endl用于插入新行。
  6. cout<<"Value of b : "<<b<<" Address of b : "<<&b <<endl;: 與上述類似,但打印的是變量b的值和地址。
  7. short s=20;: 聲明一個短整型變量s并初始化為20。在大多數系統上,short通常是2字節(16位)。
  8. cout <<"Value of s : "<< s << endl;: 使用cout打印"Value of s : "和變量s的值。
  9. float f1=20.03;: 聲明一個單精度浮點型變量f1并初始化為20.03。在大多數系統上,float通常是4字節(32位)。
  10. double d1=50.55416416;: 聲明一個雙精度浮點型變量d1并初始化為50.55416416。在大多數系統上,double通常是8字節(64位)。
  11. cout <<"Value of f1 : "<< f1 << endl;: 使用cout打印"Value of f1 : "和變量f1的值。
  12. cout <<"Value of d1 : "<< d1 << endl;: 使用cout打印"Value of d1 : "和變量d1的值。
  13. char c1='A';: 聲明一個字符變量c1并初始化為'A'。
  14. cout<<c1<<endl;: 使用cout打印變量c1的值,也就是字符'A'。
  15. string s1="Hello Tridib";: 聲明一個字符串變量s1并初始化為"Hello Tridib"。
  16. cout<<s1<<endl;: 使用cout打印變量s1的值,也就是"Hello Tridib"。
  17. string s2="Welcome to CPP !";: 聲明另一個字符串變量s2并初始化為"Welcome to CPP !"。
  18. cout<<s2<<endl;: 使用cout打印變量s2的值,也就是"Welcome to CPP !"。
  19. string combineStrings=s1+", "+s2;: 將s1和s2連接在一起,創建一個新的字符串combineStrings。
  20. cout<<combineStrings<<endl;: 使用cout打印變量combineStrings的值,也就是"Hello Tridib, Welcome to CPP !"。
  21. bool b1=true;: 聲明一個布爾型變量b1并初始化為true。在C++中,布爾類型的值只能是true或false。
  22. cout<<b1<<endl;: 使用cout打印變量b1的值,也就是true。在C++中,輸出布爾值時會自動轉換為字符串"true"或"false"。
  23. b1=1515;: 將變量b1的值更改為整數1515。在C++中,布爾類型的值也可以是0或非0的任何整數。
  24. cout<<b1<<endl;: 使用cout打印變量b1的值,由于非零的整數會被視為true,所以這里輸出的是true。
  25. b1=-445;: 將變量b1的值更改為-445。
  26. cout<<b1<<endl;: 使用cout打印變量b1的值,由于非零的整數會被視為true,所以這里

    輸出的是true。

  27. ?b1=0;: 將變量b1的值更改為0。

  28. cout<<b1<<endl;: 使用cout打印變量b1的值,由于布爾類型的值只能是true或false,所以這里輸出的是false。
  29. unsigned short int u1=60445;: 聲明一個無符號短整型變量u1并初始化為60445。在大多數系統上,unsigned short通常是2字節(16位)。
  30. cout<< u1 <<endl;: 使用cout打印變量u1的值。由于是無符號類型,所以可以輸出大于255的整數。
  31. const string myname="Tridib";: 聲明一個常量字符串變量myname并初始化為"Tridib"。const關鍵字表示該變量的值不能被修改。
  32. cout << myname << endl;: 使用cout打印變量myname的值,也就是"Tridib"。

C++是一種多范式編程語言,支持多種變量類型。下面是C++中主要的變量類型及其描述:

  1. 基本類型

    • 整數類型:這些類型用于存儲整數值。有符號和無符號兩種類型。

      • int: 通常為32位,但大小可能因平臺而異。
      • short: 通常為16位。
      • long: 通常為32位或64位,大小可能因平臺而異。
      • long long: 通常為64位,大小可能因平臺而異。
    • 浮點類型:這些類型用于存儲帶有小數點的值。

      • float: 單精度,通常為32位。
      • double: 雙精度,通常為64位。
    • 字符類型:這些類型用于存儲單個字符或ASCII值。

      • char: 有符號或無符號,通常為8位。
    • 布爾類型bool,用于存儲邏輯值,可以取truefalse

  2. 復合類型

    • 數組:用于存儲相同類型的多個元素。
    • 字符串:字符數組,用于存儲多個字符。
    • 結構體:用于將多個不同類型的變量組合在一起。
    • 聯合體:用于在內存中共享多個不同數據類型的變量。
  3. 指針類型

    • int *p;:定義一個指向整數的指針。
    • double *dp;:定義一個指向雙精度浮點數的指針。
    • char *cp;:定義一個指向字符的指針。
  4. 引用類型

    • int &ref;:定義一個對整數變量的引用。引用和它引用的變量在內存中是同一實體。
  5. 枚舉類型

    • enum color { red, green, blue };:定義了一個名為color的枚舉類型,包含三個可能的值:red、green和blue。
  6. 自定義類型

    • :定義自定義的數據類型和方法。類是一種用戶自定義的數據類型,可以包含屬性(變量)和方法(函數)。
  7. 特殊類型

    • void:表示無類型,常用于函數的返回值類型,如void func()表示該函數沒有返回值。
    • const:表示常量,一旦給定值就不能改變。例如const int a = 10;,a的值就不能再改變。
    • volatile:表示易變的,即程序無法預知該變量的值會隨時發生變化。例如硬件寄存器的值、正在運行的進程等。
  8. 復合類型(如數組、指針、引用等)的進一步擴展:

    • 指針數組:數組的元素是指針類型。例如int *arr[5]定義了一個包含5個指向整數的指針的數組。
    • 指向指針的指針:例如int **pp;定義了一個指向指針的指針,該指針可以指向一個整數類型的變量。
    • 引用數組:例如int &arr[5]定義了一個包含5個整數引用的數組。每個引用都是它引用的數組元素的別名。
  9. 函數指針:指向函數的指針,例如int (*fp)(int)定義了一個接受一個整數參數并返回一個整數的函數指針。

  10. 智能指針:C++11引入了智能指針,以幫助管理動態分配的內存。智能指針是一種類,它以一種安全的方式自動管理動態分配的內存。以下是一些智能指針類型:

    • std::unique_ptr<T>:這種類型的指針在離開作用域時自動刪除其所有權。它只能指向一個對象,并保證其指向的對象在任何時刻都有一個所有者。
    • std::shared_ptr<T>:這種類型的指針允許多個智能指針共享同一個對象。當最后一個智能指針離開作用域或被重置時,它會自動刪除所指向的對象。
    • std::weak_ptr<T>:這種類型的指針也是指向共享對象的,但不會增加對象的引用計數。當最后一個shared_ptr離開作用域或被重置時,weak_ptr將看到對象的析構。

這些是C++中的主要變量類型。根據需要,還可以創建自定義類型和結構,以滿足特定的編程需求。

C++14引入了一些新的變量類型,這些類型在C++11和C++17中都有所擴展。以下是一些C++14中引入的新變量類型:

  1. 原子類型(Atomic Types):這些類型定義在<atomic>頭文件中,用于表示可以在不引起其他線程阻塞的情況下被單獨操作的值。原子類型包括整數、浮點數和指針類型。

    • atomic<T>:定義了一個原子操作的基本類型。原子操作是一種在單個線程中執行的操作,它可以在沒有其他線程干擾的情況下修改數據。
    • atomic_flag:定義了一個原子標志,可以用于實現簡單的原子布爾操作。
  2. 數組的初始化:C++14引入了一種新的數組初始化方法,允許使用花括號{}進行初始化。例如:

 

cpp復制代碼

int arr[] = {1, 2, 3, 4, 5};
  1. 通用 Lambda 捕獲:C++14引入了通用 lambda 捕獲,允許捕獲變量,無論它們是否在作用域中。例如:

 

cpp復制代碼

auto lambda = [captured_var = some_global_var](){ /* Use captured_var */ };
  1. 右值引用(Rvalue References):進一步擴展了右值引用,使其更易于使用和更靈活。C++14引入了std::movestd::forward函數,用于移動語義和完美轉發。
  2. 類型萃取(Type deduction):C++14引入了一些新的類型萃取規則,包括萃取數組和函數類型的參數。
  3. Unicode 支持:C++14引入了更全面的 Unicode 支持,包括新的字符類型和函數。
  4. 線程局部存儲(Thread-local storage):C++14引入了線程局部存儲,允許為每個線程存儲單獨的變量副本。
  5. 二進制字面值:C++14引入了新的二進制字面值,包括二進制整數和二進制浮點數。
  6. 字面值的顯示浮點數:C++14允許在字面值中使用顯示浮點數,例如0x1p+2n表示一個十六進制浮點數。

這些是C++14引入的一些主要變量類型和功能。這些功能增強了語言的表達力和性能,并提供了更多的靈活性和控制。

C++20引入了一些新的變量類型和功能,進一步擴展了語言的表達力和性能。以下是一些C++20中引入的新變量類型和功能:

  1. 概念(Concepts):概念是一種用于指定類型必須滿足的條件的語言特性。可以使用概念來約束模板參數的類型,以便在模板實例化時確保類型符合特定的要求。這有助于提高代碼的可讀性和可維護性。

 

cpp復制代碼

template <typename T> concept bool C() { return requires (T t) { t++; }; }
template <C T> void f(T t) { ++t; }
  1. 結構化綁定(Structured Binding):C++20引入了結構化綁定,允許將一個表達式的值直接分配給多個變量。這使得在解構數組、元組或其他復合類型時更加方便。

 

cpp復制代碼

int a = 1, b = 2;
auto [c, d] = a + b; // c = 3, d = 3
  1. if constexpr:C++20引入了if constexpr語句,它允許在編譯時根據條件選擇不同的代碼路徑。這對于在編譯時進行條件編譯和靜態分派非常有用。

 

cpp復制代碼

template <typename T> void f(T value) {
if constexpr (std::is_integral_v<T>) {
// 處理整數類型
} else if constexpr (std::is_floating_point_v<T>) {
// 處理浮點數類型
}
}
  1. 三向比較(Three-way Comparison):C++20引入了三向比較運算符<=>,用于執行基于比較的操作。這可以用于實現自定義類型的比較操作。
  2. 模板別名(Template Aliases):C++20引入了模板別名,允許使用別名來簡化模板的聲明和使用。
  3. 折疊表達式(Fold Expressions):C++20引入了折疊表達式,允許在展開二元或三元運算符時進行遞歸計算。這對于實現高階函數和泛型算法非常有用。
  4. 嵌套的命名空間(Nested Namespaces):C++20允許在命名空間內部定義另一個命名空間,以更好地組織代碼。
  5. 上下文重復名稱(Contextual Repeated Name):C++20允許在特定上下文中重復使用名稱,這有助于提高代碼的可讀性。
  6. 模塊(Modules):C++20引入了模塊,這是一種將代碼劃分為邏輯單元的方式,以提高編譯速度和代碼組織。模塊可以用于實現特定功能或庫的封裝和重用。
  7. 概念工具(Concept Tools):C++20提供了一組工具,用于定義和操作概念。這有助于提高代碼的可讀性和可維護性。

這些是C++20引入的一些主要變量類型和功能。這些功能進一步增強了語言的表達力和性能,并提供了更多的靈活性和控制。


Arduino

#include <avr/pgmspace.h>  void setup() {  Serial.begin(9600);  int a = 10;  Serial.print("Value of a : ");  Serial.print(a);  Serial.print(" Address of a : ");  Serial.println(&a);  short s = 20;  Serial.print("Value of s : ");  Serial.println(s);  float f1 = 20.03;  Serial.print("Value of f1 : ");  Serial.print(f1);  Serial.println();  double d1 = 50.55416416;  Serial.print("Value of d1 : ");  Serial.println(d1);  char c1 = 'A';  Serial.print(c1);  Serial.println();  const char* s1 = "Hello Tridib";  Serial.println(s1);  const char* s2 = "Welcome to CPP !";  Serial.println(s2);  const char* combineStrings = pgm_read_word(&combineStrings); //pgm_read_word(&combineStrings) is used to get the address of the combineStrings variable in flash memory space and is not related to the original code  Serial.println(combineStrings);  bool b1 = true;  Serial.println(b1);  b1 = 1515;  Serial.println(b1);  b1 = -445;  Serial.println(b1);  b1 = 0;  Serial.println(b1);  unsigned short int u1 = 60445;  Serial.println(u1);  
}  void loop() {  // put your main code here, to run repeatedly:  
}

Arduino IDE使用的是C++的變量類型,因此它支持C++的所有常見變量類型。以下是在Arduino IDE中常用的C++變量類型:

  1. 基本類型

    • int: 用于表示整數值,通常為16位。
    • unsigned int: 用于表示無符號整數值,通常為16位。
    • long: 用于表示長整數值,通常為32位。
    • unsigned long: 用于表示無符號長整數值,通常為32位。
    • char: 用于表示字符值,通常為8位。
    • bool: 用于表示布爾值,可以取truefalse
    • float: 用于表示單精度浮點數值,通常為32位。
    • double: 用于表示雙精度浮點數值,通常為64位。
  2. 指針類型

    • int *p;:定義一個指向整數的指針。
    • char *str;:定義一個指向字符數組的指針。
  3. 數組類型

    • int arr[10];:定義一個包含10個整數的數組。
    • char str[] = "Hello";:定義一個包含字符串"Hello"的字符數組。
  4. 結構體類型

    • struct MyStruct { int id; char name[20]; };:定義一個名為MyStruct的結構體,包含一個整型成員變量id和一個字符數組成員變量name。
  5. 聯合體類型

    • union MyUnion { int id; char name[20]; };:定義一個名為MyUnion的聯合體,包含一個整型成員變量id和一個字符數組成員變量name。
  6. 函數類型

    • int myFunction(int arg1, char arg2);:定義一個名為myFunction的函數,接受一個整型參數arg1和一個字符型參數arg2,并返回一個整型值。
  7. 自定義類型

    • typedef int MyInt;:定義一個新的類型別名MyInt,相當于int類型。
  8. 枚舉類型

    • enum MyEnum { RED, BLUE, GREEN };:定義一個名為MyEnum的枚舉類型,包含三個可能的值:RED、BLUE和GREEN。
  9. 類型轉換

    • 自動類型轉換:將一種類型的值賦給另一種類型的變量時,編譯器會自動進行類型轉換。例如,將一個整數值賦給一個浮點變量時,編譯器會將整數值轉換為浮點數。
    • 強制類型轉換:使用強制類型轉換運算符將一種類型的值轉換為另一種類型。例如,(float) x將x轉換為浮點數類型。
  10. 常量和常量表達式

    • 常量:使用const關鍵字定義常量,其值在程序運行期間不可改變。例如,const int kConstantValue = 42;
    • 常量表達式:使用const和字面值初始化器定義常量表達式。常量表達式必須是可以在編譯時計算出結果的表達式,不能包含變量或函數調用。例如,const int kConstantExpression = 4 * 7;是常量表達式,而const int kVariableExpression = k + 1;不是常量表達式,因為k的值在編譯時無法確定。

這些是在Arduino IDE中常用的C++變量類型和相關概念。了解這些變量類型和概念對于編寫Arduino程序非常重要。


ROS1

AI生成是否可行???

#include <ros/ros.h>  
#include <std_msgs/String.h>  int main(int argc, char **argv)  
{  ros::init(argc, argv, "my_node");  ros::NodeHandle nh;  int a=10,b=35; // 4 bytes  ros::console::cout << "Value of a : " << a << " Address of a : " << &a << ros::console::endl;  ros::console::cout << "Value of b : " << b << " Address of b : " << &b << ros::console::endl;  short s=20; //2 bytes  ros::console::cout << "Value of s : " << s << ros::console::endl;  float f1=20.03; //4 bytes  ros::console::cout << "Value of f1 : " << f1 << ros::console::endl;  double d1=50.55416416; //8 bytes  ros::console::cout << "Value of d1 : " << d1 << ros::console::endl;  int c1 = 65;  ros::console::cout << c1 << ros::console::endl;  std_msgs::String s1;  s1.data = "Hello Tridib";  ros::console::cout << s1.data << ros::console::endl;  std_msgs::String s2;  s2.data = "Welcome to CPP !";  ros::console::cout << s2.data << ros::console::endl;  // string concatenation not supported in ROS  // you can use roscpp'sRosOutSignal to achieve this easily.  // RosOutSignal().outStr(s1.data + ", " + s2.data);   // instead of the line above you can do:  std_msgs::String combineStrings;  combineStrings.data = s1.data + ", " + s2.data;  ros::console::cout << combineStrings.data << ros::console::endl;  bool b1=true; //Boolean is true or false. FALSE IS ALWAYS ZERO, EVERY OTHER NUMBER IS TRUE.  ros::console::cout << b1 << ros::console::endl;  b1=1515;  ros::console::cout << b1 << ros::console::endl;  b1=-445;  ros::console::cout << b1 << ros::console::endl;  b1=0;  ros::console::cout << b1 << ros::console::endl;  //Positive numbers or unsigned numbers. Increases the positive range.  unsigned short int u1=60445;  ros::console::cout << u1 << ros::console::endl;  // const string myname="Tridib"; is not supported in ROS, you should use a string_view instead. (not implemented in roscpp at the time of writing)  
}

ROS1 Noetic是ROS1的一個版本,使用C++作為主要的編程語言。在ROS1 Noetic中,常見的C++變量類型包括以下幾種:

  1. 基本類型:與標準C++相同,包括int、float、double、char等。
  2. 智能指針類型:ROS1 Noetic主要使用std::shared_ptrstd::unique_ptr兩種智能指針類型,用于自動管理資源的生命周期。
  3. 回調函數類型:ROS1 Noetic提供了ROS1特定的回調函數類型,如boost::functionboost::slot,用于實現事件驅動的回調機制。
  4. 命名空間:ROS1 Noetic使用了多個命名空間,如rosstd_msgssensor_msgs等,用于組織和管理ROS相關的代碼和消息類型。
  5. 消息類型:ROS1 Noetic使用特定的消息類型,如std_msgs::Stringsensor_msgs::Image等,用于在ROS系統中進行節點之間的通信。這些消息類型通常定義在ROS1的消息規范中。
  6. 服務類型:ROS1 Noetic使用特定的服務類型,如ros::ServiceServerros::ServiceResponse,用于在ROS系統中實現服務調用。這些服務類型定義在ROS1的服務規范中。
  7. 動作類型:ROS1 Noetic使用特定的動作類型,如actionlib::SimpleActionClientactionlib::SimpleGoal,用于在ROS系統中實現復雜的行為控制。這些動作類型定義在ROS1的動作規范中。

除了上述變量類型外,ROS1 Noetic還提供了許多其他的工具和庫,用于實現機器人控制、傳感器數據處理、可視化等功能。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40693.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Openwrt]一步一步搭建MT7981A uboot、atf、openwrt-21.02開發環境操作說明

安裝ubuntu-18.04 軟件安裝包 ubuntu-18.04-desktop-amd64.iso 修改ubuntu管理員密碼 sudo passwd [sudo] password for w1804: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 更新ubuntu源 備份源 sudo cp /etc/apt/so…

CentO7.9安裝Docker

文章目錄 CentO7.9安裝Docker刪除舊版本的Docker安裝Docker倉庫安裝Docker安裝最新版本安裝指定版本 Docker安裝個NGINX查看Docker鏡像運行查看Docker進程查看啟動端口停止Docker容器 CentO7.9安裝Docker 刪除舊版本的Docker sudo yum remove docker \docker-client \docker-…

Vue+ElementUI實現選擇指定行導出Excel

這里記錄一下&#xff0c;今天寫項目時 的一個需求&#xff0c;就是通過復選框選中指定行然后導出表格中選中行的Excel表格 然后這里介紹一個工具箱(模板)&#xff1a;vue-element-admin 將它拉取后&#xff0c;運行就可以看到如下界面&#xff1a; 這里面的很多功能都已經實現…

【NAS群暉drive異地訪問】使用cpolar遠程訪問內網Synology Drive「內網穿透」

文章目錄 前言1.群暉Synology Drive套件的安裝1.1 安裝Synology Drive套件1.2 設置Synology Drive套件1.3 局域網內電腦測試和使用 2.使用cpolar遠程訪問內網Synology Drive2.1 Cpolar云端設置2.2 Cpolar本地設置2.3 測試和使用 3. 結語 前言 群暉作為專業的數據存儲中心&…

jupyter切換conda虛擬環境

環境安裝 conda install nb_conda 進入你想使用的虛擬環境&#xff1a; conda activate your_env_name 在你想使用的conda虛擬環境中&#xff1a; conda install -y jupyter 在虛擬環境中安裝jupyter&#xff1a; conda install -y jupyter 重啟jupyter 此時我們已經把該安裝…

也許你正處于《孤注一擲》中的“團隊”,要留心了

看完這部電影&#xff0c;心情久久不能平靜&#xff0c;想了很多&#xff0c;倒不是擔心自己哪天也成為“消失的yaozi”&#xff0c;而是在想&#xff0c;我們每天所賴以生存的工作&#xff0c;跟電影里他們的工作比&#xff0c;差別在哪里呢&#xff1f; 目錄 1. 產品的本質…

Linux系統下的性能分析命令

在 Linux 系統下&#xff0c;有許多用于性能分析和調試的命令和工具&#xff0c;可以幫助您識別系統瓶頸、優化性能以及調查問題。本文將介紹在性能分析過程中&#xff0c;可能使用到的一些命令。 以下是一些常用的性能分析命令和工具匯總&#xff1a; 命令功能簡述top用于實…

2023-08-16力扣每日一題

鏈接&#xff1a; 2682. 找出轉圈游戲輸家 題意&#xff1a; 環形1到n&#xff0c;從1開始&#xff0c;每次移動 第i次*k &#xff0c;當移動到出現過的序號時停下&#xff0c; 求沒移動到的數字 解&#xff1a; 簡單模擬題&#xff0c;我也以為有數學做法&#xff0c;可…

docker安裝部署

目錄 docker安裝部署 1.環境 2.安裝步驟 1.安裝必要工具 2.配置軟件源 3.修改軟件源 4.更新并下載docker 5.設置開機自啟 3.啟動docker 1.配置docker鏡像加速器 2.啟動服務 docker安裝部署 1.環境 centos7 2.安裝步驟 1.安裝必要工具 yum install -y yum-utils dev…

【QT+ffmpeg】QT+ffmpeg 環境搭建

1.qt下載地址 download.qt.io/archive/ 2. win10sdk 下載 https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ 安裝 debug工具路徑 qtcreater會自動識別 調試器選擇

最長連續序列

題目&#xff1a; 給定一個未排序的整數數組 nums &#xff0c;找出數字連續的最長序列&#xff08;不要求序列元素在原數組中連續&#xff09;的長度。 示例 1&#xff1a; 輸入&#xff1a;nums [100,4,200,1,3,2] 輸出&#xff1a;4 解釋&#xff1a;最長數字連續序列是…

74、75、76——tomcat項目實戰

tomcat項目實戰 tomcat 依賴 java運行環境,必須要有jre , 選擇 jdk1.8 JvmPertest 千萬不能用 kyj易捷支付 項目機器 選擇 一臺機器 ,安裝jdk1.8的機器下載tomcat的包 上傳到機器,解壓tomcattomcat文件 bin文件夾: 啟動文件 堆棧配置文件 catalina.sh JAVA_OPTS="-Xm…

gitlab合并新項目和分支切換

一、新建項目 1、創建空白項目 2、先創建一個群組 3、編寫群組信息 4、創建群組完成以后新建項目 ??????? 二、將代碼推送到gitlab 1、初始化 git init 2、關聯gitlab地址 # 比如:http://192.168.139.128:7070/cloud/obwt_cloud.git git remote add origin <你…

FreeRTOS qemu mps2-an385 bsp 移植制作 :串口打印篇

相關文章 FreeRTOS qemu mps2-an385 bsp 移植制作 &#xff1a;環境搭建篇 FreeRTOS qemu mps2-an385 bsp 移植制作 &#xff1a;系統啟動篇 FreeRTOS qemu mps2-an385 bsp 移植制作 &#xff1a;系統運行篇 開發環境 Win10 64位 VS Code&#xff0c;ssh 遠程連接 ubuntu …

如何使用Python編寫小游戲?

大家好&#xff0c;我是沐塵而生&#xff0c;如果你是一個熱愛編程的小伙伴&#xff0c;又想嘗試游戲開發&#xff0c;那么這篇文章一定能滿足你的好奇心。不廢話&#xff0c;讓我們馬上進入Python游戲開發的精彩世界吧&#xff01; Python游戲開發的魅力 編寫小游戲不僅僅是鍛…

BUUCTF [安洵杯 2019]easy_serialize_php 1 詳細講解

題目來自buuctf&#xff0c;這是一題關于php序列化逃逸的題 1. 題目 題目給出的代碼 <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); }if($_S…

【重復處理】CRUD接口冪等性處理

保證冪等性的核心思想&#xff1a;通過唯一的業務單號保證冪等 非并發情況下&#xff0c;查詢業務單號有沒有操作過&#xff0c;沒有則執行操作針對第一次執行業務時間&#xff0c;有大量并發情況下&#xff0c;整個操作過程加鎖&#xff0c;通過分布式鎖來加鎖Select操作&…

時序預測 | MATLAB實現基于CNN-BiGRU卷積雙向門控循環單元的時間序列預測-遞歸預測未來(多指標評價)

時序預測 | MATLAB實現基于CNN-BiGRU卷積雙向門控循環單元的時間序列預測-遞歸預測未來(多指標評價) 目錄 時序預測 | MATLAB實現基于CNN-BiGRU卷積雙向門控循環單元的時間序列預測-遞歸預測未來(多指標評價)預測結果基本介紹程序設計參考資料 預測結果 基本介紹 MATLAB實現基于…

Dubbo基礎學習

目錄 第一章、概念介紹1.1&#xff09;什么是RPC框架1.2&#xff09;什么是分布式系統1.3&#xff09;Dubbo概述1.3&#xff09;Dubbo基本架構 第二章、服務提供者(直連)2.1&#xff09;目錄結構和依賴2.2&#xff09;model層2.3&#xff09;service層2.4&#xff09;resources…

【eNSP】交換機(vlan和vlan間通信)

【eNSP】交換機&#xff08;vlan和vlan間通信&#xff09; 原理術語過程 實驗根據圖片連接模塊配置設備名稱和IP地址配置交換機交換機鏈路指定sw1配置sw2配置 設置網關交換機互聯實驗設置查看設置結果 ospf配置 原理 HUB集線器&#xff1a;它的作用可以簡單的理解為將一些機器…