从数组到vector
#include <iostream>
#include <vector>
using namespace std;
int main() {
int m;
int n;
cin>>m>>n;
vector<vector<int>> matrix_a(m);
vector<vector<int>> matrix_b(n);
int input;
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
cin >> input;
matrix_a[i].push_back(input);
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> input;
matrix_b[i].push_back(input);
}
}
for(int i = 0; i < m; i++){
for(int j = 0; j < m; j++){
int s = 0;
for(int k = 0; k < n; k++){
s = s + matrix_a[i][k] * matrix_b[k][j];//关键步骤
}
if(j != 0){
cout << " ";
}
cout << s;
}
cout << endl;
}
return 0;
}
存储不定个数的数字
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int input;
int count = 0;
vector<int>arr;
while(cin >> input){
auto iter = find(arr.begin(),arr.end(),input);//查找元素
if( iter == arr.end()){
//若没有找到则执行插入
arr.push_back(input);
count++;
}
//找到了则什么都不做
}
sort(arr.begin(),arr.end(),greater<int>());
for( int i = 0; i < arr.size(); ++i){
cout << arr[i] << endl;
}
cout << arr.size();
return 0;
}
字符串数组与std::string
char str[5]={'t','o','a','d','\0'};
char str[5]="toad";
char str[]="toad";
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
cout << input << endl;
cout << input.length() <<endl;
cout << input[0] <<endl;
string str = "yangzhou301";
auto result = input + str;
cout << result << endl;
cout << (result < str) << endl;
return 0;
}
C++提供的函数模板简介
int abs(int x)
{
return x<0?-x:x;
}
double abs(double x)
{
return x<0?-x:x;
}
使用函数模板实现swap函数
#include <iostream>
using namespace std;
template<typename T>
void my_swap(T& a, T& b)
{
T c = a;
a = b;
b = c;
}
int main()
{
double a1 = 1.3, a2 = 2.1;
char b1 = 'a', b2 = 'b';
my_swap(a1, a2);
my_swap(b1, b2);
cout << a1 << " " << a2 << endl;
cout << b1 << " " << b2 << endl;
return 0;
}
类模板