此乃AuCuC语言转cpp的笔记

其实是因为开始学的时候我在上实验课,没带笔记本,还要躲避老师,遂做此篇。

输入输出

输入:cin>>a;

输出:cout<<a<<endl;

string

string s;
cin >> s;
整行输入:getline(cin, s);
cout << s.size() << “\n”; // 输出字符串长度
cout << s.substr(1, 2) << “\n”; // 从索引1开始取2个字符的子串

s=s1+s2;//自动扩容
string s = “abracadabra”;
cout << s.find(“ra”); // 2,查找
if (s.find(“xyz”) == string::npos) { … }//没找到

  • 自动扩容(char[] 一旦满了就炸)
  • 能直接拼接:s + "bc"
  • 能获取长度:s.size()
  • 子串:s.substr()
  • 查找:s.find("abc")
  • 排序:sort(s.begin(),s.end());

结构体

struct Node {
int x;
void print() { cout << x; } // 居然可以放函数吗。。。
};

struct Node{
    int x;
    void printf() {cin>>x;}
};

int main(){
    Node n;
    n.x=2;
    n.printf();\\调用结构体里的函数
    cout<<n.x<<“\n”;
}

函数

void add(int &x) {
x++;
}//不用指针了

内存管理

malloc->new

free->delete

vector(动态数组)

·vector <int> v; // 一个空的动态数组
v.push_back(10); // 在末尾插入 10
v.push_back(20);
cout << v[0] << ” ” << v.size() << “\n”;
v.pop_back(); // 删除最后一个元素
·for (auto &x : v) // 范围 for,auto &x 表示“引用遍历”
cout << x << ” “;
·vector <int>a;
a.reserve(1000000); // 提前开 100w 空间,提高 push_back 效率

在末尾加上一个元素:push_back();
删除最后一个元素:pop_back();
遍历数组:for(auto &x:v)
for (auto it = v.begin(); it != v.end(); it++)//auto类似于指针
添加元素:a.insert(a.begin()+2, 9);//在第三个元素位置添加9
删除元素:a.erase(a.begin()+3);//删除第四个元素
开空间:a.reserve(1000000);
初始化:vector s(n + 1, 0);//初始化个数为n+1的s都为0

pairvector<pair<...>>

int main() {
pair p = {3, 5}; // 一个包含两个整数的容器
cout << p.first << ” ” << p.second << “\n”;
}

pair<int,int>保存两个相关联的值,前面的是first,后面是second

int main(){
    vector<pair<int,int>> edges;// 存边(值, 下标)或(权重, 目标)
    edges.push_back({1, 2});
    edges.emplace_back(3, 4); // emplace_back 更高效(原地构造)
    for (auto &e : edges)
        cout << e.first << ” ” << e.second << “\n”;
    return 0;
}

push_back和emplace_back都是在vector末尾加元素的函数

sort

数组:eg:sort(a,a+4);
升序:sort(a.begin(), a.end());
降序: sort(v.begin(), v.end(), greater<int>());
pair:vector<pair<int,int>>v={……}; sort(v.begin(),v.end());

list

·list<int> a;//设置了一个链表
a.push_back(10);
a.push_back(20);//在末尾插入
·a.push_front(5)//在最前面插入
·a.pop_back()//删除末尾
a.pop_front()//删除头
·auto it = a.begin(); // 指向第一个节点
advance(it, 1); // it 移动 1 步(即第二个位置)
a.insert(it, 100); // 在第二个节点“前”插入 100//和vector好像但他快点
·auto it = a.begin();
advance(it, 2);
a.erase(it); // 删除第三个元素
·a.remove(10); // 删除所有值 == 10 的节点
·a.sort(); // 默认升序
a.sort(greater<int>()); // 降序
·a.reverse();//翻转

插入:push_back、push_front、insert()
删除:pop_front、pop_back、erase()
排序:a.sort;
翻转:a.reverse();

queue/deque(默认用deque)

queue <int> q;//设置队列
q.push(10);
q.push(20);//入队
q.front(); //队头元素
q.pop(); // 删除队头元素
q.back(); // 队尾元素
q.empty()//判断队伍是否为空
q.size();//元素个数
int x = q.front();
q.pop();//pop没有返回值,表达出队元素就是如此
queue <int> tmp = q;
while (!tmp.empty()) {
cout << tmp.front() << endl;
tmp.pop();
}//遍历只能如此
//这个不能随机访问

push() — 入队
pop() — 出队
front() — 队头
back() — 队尾
empty() — 是否为空
size() — 大小

dq[i];//返回队头
dq.front();//返回队头
dq.back()//返回队尾
dq.pop_back()//删除队尾
dq.pop_front()//删除队头
dq.push_back(e)//队尾加e
dq.push_front(e)//队头加e

stack

操作作用
push(x)入栈(放一个元素到顶部)
pop()出栈(把顶部移除)
top()查看顶部元素(但不删除)
empty()是否为空
size()元素个数

评论

  1. Lotus
    2 月前
    2025-11-19 10:08:49

    哇,AuCu姐姐好厉害

  2. 小欣同学
    2 月前
    2025-11-20 19:05:09

    哇,AuCu小姐好棒啊!!!

    • 博主
      小欣同学
      2 月前
      2025-11-20 19:08:56

      我求你了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇