总结整理:C++基础语法

输入输出:

cin >> n;
// 等同于 scanf("%d", &n);

cout << n;
// 等同于 printf("%d", n);

cout << "hello world" << endl;
// 等同于 printf("hello world\n");

string类:

string s = "hello world";	// 赋值字符串
string s2 = s;
string s3 = s + s2;			// 字符串拼接
cout << s;					// 输出字符串

string s4;
cin >> s4;					// 读⼊字符串,不包括空格
string s5;
getline(cin, s5);			// 读入⼀⾏字符串,包括空格

cout << s.length();			// 输出字符串的⻓度
string s6 = s.substr(4);	// 截取从下标4开始⼀直到结束
string s7 = s.substr(5, 3); // 截取从下标5开始,3个字符

string s8 = to_string(123);	// 将123这个数字转成字符串
string s9 = to_string(4.5);	// 将4.5这个数字转成字符串
int a = stoi(s8);			// 将"123"这个字符串转成数字
double b = stod(s9);		// 将"4.5"这个字符串转成数字

传值和引用:

void fun1(int a) {			// 传值,不改变原变量
	a = 99;
}
void fun2(int &a) {			// 引用,改变原变量
	a = 99;
}

for循环:

int arr[4] = {0, 1, 2, 3};
for(int i : arr) {
	cout << i << endl;		// 输出数组中的每⼀个元素的值
} 
for(int &i : arr) {			// i为引⽤变量
	i = i * 2;				// 将数组中的每⼀个元素都乘以2
}

动态数组vector:

# include <iostream>
# include <vector>
using namespace std;
int main() {	
	vector<int> v;			// 定义一个空vector(动态数组)
	v.resize(8);			// 设置大小为8,默认元素值都为0
	for(int i = 0; i < 10; i++) {
 		v.push_back(i);		// 在vector的末尾添加元素i
 	}
 	// 输出vector的元素个数
	cout << v.size() << endl;

	vector<int> v1(10);		// 指定vector的⼤⼩为10,默认元素值都为0
	vector<int> v2(100, 9);	// 指定vector的⼤⼩为100,默认元素值都为9
 	
 	// 使⽤迭代器的⽅式访问vector
 	// v.begin() 指向容器的第⼀个元素
 	// v.end() 指向容器的最后⼀个元素的后⼀个位置
 	for(auto it = v.begin(); it != v.end(); it++) {
 		cout << *it << " ";	// 访问元素的值要对it指针取值
 	}
	return 0;
}

集合set:

# include <iostream>
# include <set>				// set会按照元素从⼩到⼤排序,unordered_set不排序
using namespace std;
int main() {
	set<int> s;				// 定义一个空set(集合)
	for(int i = 0; i < 6; i++) {
		s.insert(i);		// 向集合s⾥⾯插⼊元素i
	}
	s.erase(1);				// 删除集合s中的1这个元素
	
	// 查找集合s中10这个元素,等于s.end()表示未找到,未找到输出0,找到输出1
	cout << (s.find(1) != s.end()) << endl;
	
	// 使⽤迭代器的⽅式访问set
	for(auto it = s.begin(); it != s.end(); it++) {
		cout << *it << " ";
	}
	return 0;
}

字典map:

# include <iostream>
# include <string>
# include <map>				// map会按照键从⼩到⼤排序,unordered_map不排序
using namespace std;
int main() {
	map<string, int> m;		// 定义一个空map(字典),键是string,值是int
	m["age"] = 20;			// 添加key为"age", value为20的键值对

	// 访问key为"age"的value, key不存在则返回0
	cout << m["age"] << endl;
	
	// 访问map的第⼀个元素,输出它的键和值
	cout << m.begin()->first << " " << m.begin()->second << endl;
	// 访问map的最后⼀个元素,输出它的键和值
	cout << m.rbegin()->first << " " << m.rbegin()->second << endl;

	// 使⽤迭代器的⽅式访问map
	// 键⽤it->first获取
	// 值⽤it->second获取
	for(auto it = m.begin(); it != m.end(); it++) {
		cout << it->first << " " << it->second << endl;
	}
	return 0;
}

栈stack:

# include <iostream>
# include <stack>
using namespace std;
int main() {
	stack<int> s;			// 定义一个空stack(栈)
	for(int i = 0; i < 6; i++) {
		s.push(i);			// 将元素i压⼊栈s中
	}
	s.pop();				// 移除栈顶元素
	cout << s.top();		// 访问栈顶元素
	return 0;
}

队列queue:

# include <iostream>
# include <queue>
using namespace std;
int main() {
	queue<int> q;			// 定义⼀个空queue(队列)
	for(int i = 0; i < 6; i++) {
		q.push(i);			// 将i的值依次压⼊队列q中
	}
	q.pop();				// 移除队列的队⾸元素
	cout << q.front();		// 访问队列的队⾸元素
	cout << q.back();		// 访问队列的队尾元素
	return 0;
}

排序:

# include <iostream>
# include <algorithm>
using namespace std;
bool cmp(int a, int b) {	// cmp函数返回的值是bool类型
	return a > b;			// 从⼤到⼩排列
	// return a < b;		// 默认从小到大排序
}
int main() {
	int a[10] = {9, 6, 3, 8, 5, 2, 7, 4, 1, 0};
	sort(a, a+10, cmp);		// sort(起始地址, 结束地址的下一位, 排序的方法)
	for(int i = 0; i < 10; i++){
		cout << a[i] << endl;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值