为了Atcoder系列复习C++语法

本文回顾了C++编程的基础知识,包括输出操作、整除注意事项、for循环理解、字符串处理、getline函数、向量(vector)的初始化与操作,以及STL中的sort和reverse函数用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久之前学过忘了 为了打比赛重新复习           每打一次就更一次  含日语内容

B - 1.01.出力とコメント

1.cout << 2525 << endl;   可以没有endl 结尾.  endl作用是换行

2.整除问题   int情况下1/2无法变成0.5  所以1/2应该放在后面 100 * (100 + 1) / 2 

3.for循环理解图

4.string char

  • 文字列変数.size()で文字列の長さを取得できる
  • 文字列変数.at(i)でi文字目にアクセスできる
  • 文字列変数.at(i)i添え字(下标)という

5.

  1. cout << "Hello"s.size() << endl; // 5(sを末尾につける)
  2. cout << "Hello".size() << endl; // できない

"Hello"s.size()i不加s报错

6.

  1. getline(cin, s); // 変数sで入力を一行受け取る
  2. getline(cin, t); // 変数tで入力を一行受け取る

7.

vector<int> vec(N);
for (int i = 0; i < N; i++) {
  cin >> vec.at(i);
}

vector<int> vec(3);vector<int> vec = {0, 0, 0}とほとんど同じ意味です。

vector<int>の場合は全ての要素が0

vector<string> vec(3)と書いた場合、空の文字列の配列{"", "", ""}で初期化されます。

vector<int> vec(3, 5);と書いた場合、配列変数vec{5, 5, 5}

配列は文字列のように+=で要素を追加することはできません。
代わりに配列変数.push_backを使えば、配列の末尾に要素を追加することができます。

#include <bits/stdc++.h>
using namespace std;

int main() {
  vector<int> vec = { 1, 2, 3 };

  vec.push_back(10); // 末尾に10を追加

  // vecの全要素を出力
  for (int i = 0; i < vec.size(); i++) {
    cout << vec.at(i) << endl;
  }
}

今まで配列の要素を指定するときは配列変数.at(添字)と書いてきましたが、配列変数[添字]でも同じことができます。
ただし、この書き方は範囲外の添字を指定してしまったときにエラーメッセージを表示してくれず、何が原因でプログラムが正しく動いていないのかがわかりにくいので、配列変数.at(添字)の書き方を使うようにしましょう

次のプログラムは、配列{ 1, 2, 3 }の最初の要素に2つの方法でアクセスしています。

使用[] 之前代码里面加上

  1. #define _GLIBCXX_DEBUG才会显示out of range报错

8.stl函数  

O - 1.14.STLの関数

vector排序

常用: min max swap  reverse sort

  1. sort(vec.begin(), vec.end()); // {1, 2, 2, 5}
  2. reverse(vec.begin(), vec.end()); // {5, 2, 2, 1}

才能从大到小排序?

或者std::sort(vec.begin(), vec.end(), std::greater<int>());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值