c++入门1
工具
特點輕量化,Notepad++可以寫源代碼,在VS 2015開發人員命令提示符可以進行編譯、運行。
cd xxxxxx //進入源文件所在目錄 cl xxx.cpp //在VS 2015開發人員命令提示符中編譯源代碼 xxx.exe //運行編譯后的可執行文件基礎知識
循環語句
#include<iostream>int main() {int sum = 0, val = 1;while (val <=10) //括號內表達式結果必須是bool或可以轉換為bool{sum += val;++val;}std::cout<<"sum of 1 to 10 inclusive is "<< sum <<std::endl;int sumf = 0;for(int valf = 0; valf <= 10; ++valf){sumf += valf;}std::cout<<"sum of 1 to 10 inclusive is "<< sumf <<std::endl;return 0; }一個接收輸入的程序:
#include<iostream>int main() {int sum = 0, val = 0;while (std::cin >> val) //std是所有標準庫的命名空間{sum += val;} //使用 ctrl + Z 來輸入文件結束的符號std::cout<<"sum is: "<< sum <<std::endl;return 0; }如:
2 3 43 32 54 645 ^Z sum is: 779數組
數組簡介
數組中的操作
#include<iostream> #include<stdio.h> #include<algorithm> //包含sort函數 using namespace std;int main() {//1. Initializationint a[5] = { 1, 2, 3 }; //other element will be set as the default value//2. Get Lengthint size = sizeof(a) / sizeof(*a); //sizeof用于獲取變量或數據類型字節大小,不同機器結果不同//除以數組單個元素字節大小,可以得到數組長度cout << "The size of a1 is: " << size << endl;//3. Iterate all Elementscout << "The contents of a1 are:";for (int item : a)//在C++11中終于有基于范圍的for循環(The range-based for statement)//在上面基于范圍的for循環中,在item的定義之后,緊跟一個冒號(:),//之后直接寫上需要遍歷的表達式,for循環將自動以表達式返回的容器為范圍進行迭代//這里在使用只讀方式遍歷容器{cout << " " << item;}cout << endl;// 4. Modify Elementa[0] = 4;// 5. Sort:需要頭文件<algorithm>sort(a, a + size); //sort(begin, end, cmp),//其中begin為指向待sort()的數組的第一個元素的指針,//end為指向待sort()的數組的最后一個元素的下一個位置的指針,//cmp參數為排序準則,如果沒有的話,默認以非降序排序。cout << "The contents of new a1 are:";for (int& item : a)//在遍歷時修改容器中的值{cout << " " << ++item;}cout << endl;getchar();return 0; }動態數組簡介
在 C++ 中的 vector,是內置的動態數組,其仍然是一個隨機存取的列表數據結構,但大小是可變的。可以簡單的認為,向量是一個能夠存放任意類型的動態數組。其提供了在序列末尾相對快速地添加/刪除元素的操作。
一道Leetcode題目:
在一個給定的數組nums中,總是存在一個最大元素 。
查找數組中的最大元素是否至少是數組中每個其他數字的兩倍。
如果是,則返回最大元素的索引,否則返回-1。
提示:
nums 的長度范圍在[1, 50].
每個 nums[i] 的整數范圍在 [0, 100].
一個更好的解法:
一次遍歷找到最大的數max1和第二大的數max2,然后看看最大的數是不是大于等于第二大的數的兩倍
總結
- 上一篇: simulink仿真学习(实现半波整流、
- 下一篇: s3c2440移植MQTT