- 博客(39)
- 收藏
- 关注
原创 NS3.37引入openssl库教程
ns3 3.37版本中已不再使用waf编译工具。首先在根目录下输入:(假设新模块命名为new_module)
2025-02-28 21:52:05
188
1
原创 【NS3.37安装踩坑】build过程中卡在traced-callback-typedef-test-suite.cc.o
不清楚这个bug发生的原因究竟是什么,因为我在两台Ubuntu 22.04的VMWare虚拟机中安装ns3.37,一直没有遇到上述问题。直到我在自己新购买的、搭载Ubuntu 22.04 Server的华为Flexus云服务器中安装ns3.37,一直出现这个bug。在Ubuntu 22.04中安装ns3.37时,执行。即可通过编译,不影响后续自己编写的模块的编译。组件时发生卡死,终端显示编译卡在文件。
2024-12-05 01:34:32
344
原创 【Python学习笔记】第二章——变量和数据类型
PS:学习书籍为《Python编程:从入门到实践》。本文章仅作为自己的学习笔记。因为我之前学过C/C++,有一定的基础,所以本文章只记录Python下自己不太熟悉的东西。看到的朋友不建议将此作为原书内容的概述哈~文章目录一、字符串一、字符串title():以首字母大写显示每个单词name = "jack lee"print(name.title())#运行结果:Jack Leeupper():将字符串改为全部大写lower():将字符串改为全部小写lstrip():剔除字符
2021-07-25 14:16:57
146
1
原创 【PAT笔记】B1010:一元多项式求导
文章目录一、题目二、解题思路1.测试数据中的坑2.代码一、题目https://pintia.cn/problem-sets/994805260223102976/problems/994805313708867584二、解题思路1.测试数据中的坑其实这题很简单,个人认为没有必要使用官方题解中开辟数组并遍历的方法来做。输入每一组系数和指数的同时,直接向输出结果即可。但测试数据中有两个坑需要注意:一个是什么都不输入,直接按下回车时,表示这是一个零多项式,应该输出“0 0”;另一个是已经输入了合.
2021-07-19 12:09:06
292
原创 【PAT笔记】B1008:数组元素循环右移问题
文章目录一、题目二、解题思路1.倒置法一、题目https://pintia.cn/problemsets/994805260223102976/problems/994805316250615808题目难点在于不能使用另外的数组,并考虑移动数据的次数尽量少。书上P12的方法过于讨巧,无意义。书中5.2节介绍的最大公约数法有点难理解,暂时放弃。于是使用倒置法解决。二、解题思路1.倒置法思路:写一个reverseArray函数,将数组内划定范围的元素倒置。令右移量为move,数组总长为l.
2021-07-17 20:24:39
167
原创 【JAVA学习笔记】数值类型之间的转换+强制类型转换
文章目录一、数值之间的转换二、强制类型转换1.截断浮点数2.对浮点数进行舍入运算3.警告一、数值之间的转换在程序运行时,经常需要将一种数值类型转换为另一种数值类型。下图给出了数值类型之间的合法转换。实心箭头表示无信息丢失的转换,虚箭头表示可能有精度损失的转换。当使用上面两个数值进行二元运算时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一类型,再进行计算。如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。否则,如果其中一个操作数是float类.
2021-07-04 17:18:29
510
原创 【C++学习纪录】常用查找算法
一、概述find //查找元素find_if //按条件查找元素adjacent_find //查找相邻重复元素binary_search //二分查找count //统计元素个数count_if //按条件统计元素个数二、find ( iterator beg, iterator end, value)// 按值查找元素,找到即返回指定位置迭代器,找不到返回end()// beg开始迭代器, end结束迭代器, value是待查找元素#include<iostream>
2020-08-01 07:17:04
154
原创 【C++学习纪录】常用遍历算法
一、算法概述算法头文件主要是由< algorithm> < functional> < numeric>组成< functional> 定义了一些模板类,用以声明函数对象< numeric>体积很小,只包括几个序列上面进行简单数学运算的模板函数< algorithm>是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等。二、常用遍历算法1、for_each ( iterator beg, i
2020-08-01 06:15:20
176
原创 【C++学习纪录】内建函数对象——逻辑仿函数
template< class T> bool logical_and< T> //逻辑与template< class T> bool logical_or< T> //逻辑或template< class T> bool logical_note< T> //逻辑非#include<iostream>#include<functional>#include<vector>#incl.
2020-07-31 15:42:55
189
原创 【C++学习纪录】内建函数对象——关系仿函数
函数原型:template< class T> bool equal_to< T> //等于template< class T> bool not_equal< T> //不等于template< class T> bool greater< T> //大于template< class T> bool greater_equal< T> //大于等于template< class T>
2020-07-31 15:31:21
150
原创 【C++学习纪录】内建函数对象——算术仿函数
在使用内建对象之前,需要引入头文件#include< functional>算术仿函数的原型有:template
2020-07-31 15:04:41
342
原创 【C++学习纪录】map容器基础
map/multimap容器中所有的元素都是pair,即对组。pair中的第一个值为key值,第二个值为value实值。所有元素都会根据key值进行默认的升序排序。map容器的优点在于可以根据key值快速地找到value值。在map容器中,不允许有重复的key值;而在multimap中是允许的。一、基本语法#include<iostream>#include<map>using namespace std;int main(){ //第一种常用构造方法
2020-07-30 23:25:12
176
原创 【C++学习纪录】set容器——使用仿函数改变排序
set容器默认是以升序方式对数据进行排序。若要改变它的排序方式,应在创建容器变量时使用仿函数。一、简单地对数据进行降序排序#include<iostream>#include<set>using namespace std;//写仿函数,重载括号运算符,放在类中。class temp{ public: //注意,是bool类型 bool operator()(const int num1, const int num2) {
2020-07-30 20:54:22
1419
6
原创 【C++学习纪录】set容器——基本概念 & 插入函数 & 计数函数
一、set容器和multiset容器都会在数据插入时对数据进行排序,底层是二叉树结构。使用二者前需include同一个头文件< set >二、set容器不允许重复的数据出现,而multiset容器允许。三、向set容器和multiset容器中插入数据使用的是类的成员函数insert()其中,两种容器insert函数返回值不相同。#include<iostream>#include<set>using namespace std;int main(){
2020-07-30 20:27:48
928
原创 【C++学习纪录】pair对组的创建
在出现成对出现的数据时,可以利用pair对组实现两个数据的返回。两种创建方式:一、 pair<type, type> p (value, value)二、pair<type, type> p = make_pair(value, value)#include<iostream>#include<string>using namespace std;int main(){ //方法一 pair<int, string>
2020-07-30 19:57:08
211
原创 【C++学习纪录】list容器——迭代器 & 反转 & 排序
一、list容器的迭代器1、list容器的迭代器是不支持随机访问的。它是双向迭代器。2、这意味着:假设p1、p2是list迭代器,p1++、++p1、p1–、--p1、p1 == p2这样的操作是合法的,而p1 += num不合法。3、若p是一个list容器,通过p[num]的方式访问数据是不合法的。二、reverse( ) 反转函数#include<iostream>#include<list>using namespace std;void printList(
2020-07-30 16:12:36
641
原创 【C++学习纪录】vector函数——预留空间
可使用reserve(int len)函数为容器预留len个元素长度,这样做可减少vector在动态扩展容量时的扩展次数。预留位置不初始化,元素不可访问。#include<iostream>using namespace std;#include<vector>int main(){ vector<int> v; v.reserve(10); cout << "capacity: " << v.capacity
2020-07-28 20:24:06
316
原创 【C++学习纪录】vector容器——利用swap函数缩小空间
容器互换函数swap(vec)用于实现两个容器内的元素进行互换一、普通用法#include<iostream>using namespace std;#include<vector>void printVector(vector<int> &v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout <<
2020-07-28 20:18:47
363
原创 【C++学习纪录】vector容器——数据的存取
1、at(int index) 返回索引index所指的数据2、operator[ ] 返回索引index所指的数据3、front() 返回容器中第一个数据元素4、back() 返回容器中最后一个数据元素#include<iostream>using namespace std;#include<vector>void printVector(vector<int> &v) { for (vector<int>::iterat
2020-07-28 19:50:21
623
原创 【C++学习纪录】vector容器——插入和删除
1、push_back(elem) 尾部插入元素elem2、pop_back() 删除最后一个元素3、insert(const_iterator pos, elem) 向迭代器指向的位置插入elem4、insert(const_iterator pos, int count, elem) 向迭代器指向位置插入count个elem5、erase(const_iterator pos) 删除迭代器指向的元素6、erase(const_iterator start, const_iterator end
2020-07-28 18:24:48
315
原创 【C++学习纪录】vector容器——容量与大小
1、empty() 判断容器是否为空。为空返回真,不为空返回假。2、capacity() 返回容器的容量3、size() 返回容器中元素的个数。元素个数不一定等于容器容量。4、resize(int num) 重新指定容器的长度为num。若容器变长,以默认值0填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。5、resize(int num, elem) 重新指定容器的长度为num。若容器变长,以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。...
2020-07-28 18:03:39
771
原创 【C++学习纪录】vector容器——构造函数&赋值操作
1、vector v; 采用模板类实现,无参构造2、vector(v.begin(), v.end()); 将v[begin(), end())区间的元素拷贝3、vector(n, elem) 将n个elem拷贝给本身4、vector(const vector &vec) 拷贝构造函数#include<iostream>using namespace std;#include<vector>void printVector(vector<int> &
2020-07-28 15:25:03
304
原创 【C++学习纪录】string容器——截取子串
函数原型:string substr(int pos, int n) const 返回由pos开始的n个字符组成的字符串一、简单截取#include<iostream>using namespace std;#include<string>int main(){ string str("hello world"); string temp = str.substr(6, 5); cout << temp << endl;
2020-07-28 14:57:19
5641
原创 【C++学习纪录】string容器——插入和删除
1、string &insert(int pos, const char *s) 插入字符串2、string &insert(int pos, const string &str) 插入字符串3、string &insert(int pos, int n, char c) 在指定位置插入n个字符c4、string &erase(int pos, int n) 删除从pos开始的n个字符一、插入字符串#include<iostream>using
2020-07-28 14:44:16
242
原创 【C++学习纪录】string容器——字符存取与修改
在string容器中,字符存取和修改有两种方法:1、char &operator[ ] (int n) 通过[ ]方式取字符2、char &at(int n) 通过at函数获取字符一、获取字符:#include<iostream>using namespace std;#include<string>int main(){ string str("hello world"); //第一种方式 cout << str[
2020-07-28 14:28:24
192
原创 【C++学习纪录】string容器——字符串比较
1、int compare(const string &s) const 与字符串s作比较2、int compare(const char *s) const 与字符串s作比较一、当两个字符串相等时,输出0.#include<iostream>using namespace std;#include<string>int main(){ string str1("hello world"); string str2("hello world");
2020-07-28 14:16:36
199
原创 【C++学习纪录】string容器——替换
string& replace(int pos, int n, const string &str) 替换从pos开始的n个字符为strstring& repalce(int pos, int n, char *s) 替换从pos开始的n个字符为字符串s一、string& replace(int pos, int n, const string &str) 替换从pos开始的n个字符为str#include<iostream>#include&.
2020-07-27 23:02:05
135
原创 【C++学习纪录】string容器——查找
1、int find(const string &str, int pos = 0) const 查找str第一次出现位置,从pos开始查找2、int find(const char *s, int pos = 0) const 查找s第一次出现位置,从pos开始查找3、int find(const char *s, int pos, int n) const 从pos位置查找s的前n个字符第一次位置4、int find(const char c, int pos = 0) const 从po
2020-07-27 21:34:28
296
原创 【C++学习纪录】string容器——字符串的拼接
string字符串的拼接1、string &operator+=(const char *str) 重载+=操作符2、string &operator+=(const char c) 重载+=操作符3、string &operator+=(const string &str) 重载+=操作符4、string &append(const char *s) 把字符串s连接到当前字符串末尾5、string &append(const char *s, in
2020-07-27 21:06:33
880
原创 【C++学习纪录】string容器——赋值操作
string赋值操作1、string& operator=(const char* s) char类型字符串赋值给当前字符串2、string& operator=(const string& s) string类型字符串赋值给当前字符串3、string& operator=(char c) 把一个字符c赋值给当前字符串4、string& assign(const char s) char类型字符串赋值给当前字符串5、string& assign(co
2020-07-27 20:30:39
521
原创 【C++学习纪录】string容器——简单的构造函数
简单介绍四种string构造函数:1、string() 创建一个空的字符串2、string(const char* s) 使用字符串s初始化3、string(const string& str) 使用一个string对象初始化另一个string对象4、string(int n, char c) 使用n个字符c初始化一、string() 创建一个空的字符串略二、string(const char* s) 使用字符串s初始化#include<iostream>using n
2020-07-27 20:10:12
172
原创 【大一下oj作业】实验11_11_链表匹配
哇…这题真的是好坑,怎么改都是90分…感谢助教的提示,要不然真的耗不出来……原来自己的做法是从上一次匹配失败的地方直接重新开始匹配,感觉没有什么问题…结果漏了很难想到的一种情况(当然只是我自己难想到而已),如果是输入:abbcabbcabbbabbcabbb那么按照原来的做法,将在A列的第二个c处暂停匹配,并从c的下一个字母a进行匹配,将无法得到正确答案;而实际上B是A的子列。原来的做法...
2020-07-27 19:51:56
1155
1
原创 【C++学习纪录】读文件的四种方式
#include<iostream>using namespace std;#include<string>#include<fstream>int main(){ fstream ifs; ifs.open("text.txt", ios::in); //判断文件是否打开成功 if(!ifs.is_open()) { cout << "Failed!" << endl;
2020-07-27 19:51:47
194
原创 【C++学习纪录】二进制方式读文件、写文件
#include<iostream>#include<string>#include<fstream>using namespace std;class person{ public: string name; int years;};int main(){ //二进制写文件 fstream ofs("test.txt", ios::out | ios::binary); if(!ofs.is_
2020-07-27 19:51:40
116
原创 【C++学习纪录】vector容器——容器中嵌套容器
//vector容器中嵌套容器#include<iostream>using namespace std;#include<vector>int main(){ //创建vector容器 vector<vector<int>> temp; vector<int> temp1; vector<int> temp2; vector<int> temp3; //向vecto
2020-07-27 19:51:33
913
1
原创 【C++学习纪录】构造函数中的深拷贝与浅拷贝的问题
在C++中创建一个类时,默认情况下,编译器会自动调用构造函数和析构函数。其中,构造函数包括默认构造函数(无参)、有参构造函数和拷贝构造函数。在调用拷贝构造函数时,可能会遇到深拷贝与浅拷贝问题。拷贝构造函数默认为浅拷贝,即仅仅将传入的对象的内容简单地复制到新创建的对象上。因此,浅拷贝的问题在于:如果我们在写类时将一块内存开辟在堆区,并在析构函数中写了程序运行结束后即释放它的代码,浅拷贝时就可能会有多个对象中的指针变量指向同一片区域。而每一个对象在函数运行结束后都会被析构函数所清除,此时因为每次调用析构函数
2020-07-12 20:19:58
201
原创 No.2——洛谷新手村P1028 数的计算
QAQ…感觉这题有点难,记录一下吧。(自己好像对递归很懵…)原先按自己的做法,老老实实用了递归,只过了5个数据点,其他全部都TLE了。做法应该是对的,但是自己太菜了不知道怎么优化算法…最后干脆看题解了。原先自己的做法//问题的本质是一个数不超过它一半的数有多少个#include<stdio.h> long long function(int num);int main()...
2020-02-20 18:20:42
151
原创 No.1——洛谷新手村数字反转(升级版)P1553
这是自己的第一篇博客。留给自己做个纪念吧。因为是洛谷的题,肯定有很多大神写了更简单的解法,我这个不够简洁应该没人会看到…自己刚入门确实比较菜,要学习的还有很多。打算把C++学完了再重新刷一遍新手村,也能更好地理解大佬们的题解。这题昨天下午敲了一小时,运行时发现连输出都没有…今早索性全部推倒重来,多写了几个函数。这题确实有一些坑,需要细心地注意0在整数部分和小数部分不同位置的各种情况。第一次提...
2020-02-20 18:20:31
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人