一些很少用到但是用到时又很抓鸡的代码
这里记录一些平时很少用到但是甬道的时候会很抓鸡的代码
1.字符串的旋转
字符串的旋转对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。
"ABCDEFGH",8,4
返回:"FGHABCDE"
代码:
class StringRotation {
public:string rotateString(string A, int n, int p) {return A.substr(p+1,n) + A.substr(0,p+1);}
};
问:漂亮你个毛线,不就是用了一个库函数吗?难道你不会用吗?
答:我还真的不会用。。。。
2.C++ string 类 assign函数的用法
string (1) |
string& assign (const string& str); |
---|---|
substring (2) |
string& assign (const string& str, size_t subpos, size_t sublen); |
c-string (3) |
string& assign (const char* s); |
buffer (4) |
string& assign (const char* s, size_t n); |
fill (5) |
string& assign (size_t n, char c); |
range (6) |
template <class InputIterator>string& assign (InputIterator first, InputIterator last); |
我想看这个表格应该就能看懂了
3.unique函数的使用
下面是一段测试代码,我发现我还是喜欢vim的界面
下面是代码的原文
# include <iostream>
# include <vector>
# include <cstdlib>
# include <algorithm>
using namespace std;void PrintVector(vector<int>& vct){for (int i=0;i<vct.size();i++) cout << vct[i] << (i==vct.size()-1?'\n':' ');
} //# 打印vector<int> 的函数
int main() {std::ios::sync_with_stdio(false);cin.tie(0);int i,j;const int n = 15;vector<int> vct(n);for (i=0;i<n;i++) vct[i] = rand()%10;// 对数组进行随机赋值sort(vct.begin(),vct.end());// 使用unique要求数组本身有序PrintVector(vct); // 打印初始序列vct.erase(unique(vct.begin(),vct.end()),vct.end()); // unique 函数会返回第一个无效地址的位置PrintVector(vct); // 打印删除后的序列return 0;
}/*输出结果:0 1 2 2 3 3 3 5 5 6 6 7 7 9 9
0 1 2 3 5 6 7 9*/
3.翻转整数的二进制
发现了一个不错的函数,作用是将整数的二进制表示翻转后的值返回。
int flipNum(int x){if (x & 1) return x;int n = 0;while (x){n = (n << 1) | (x & 1);x = x >> 1;}return n;
}
4.打乱数组的某一段的顺序
// random_shuffle example
#include <iostream> // std::cout
#include <algorithm> // std::random_shuffle
#include <vector> // std::vector
#include <ctime> // std::time
#include <cstdlib> // std::rand, std::srand// random generator function:
int myrandom (int i) { return std::rand()%i;}int main () {std::srand ( unsigned ( std::time(0) ) );std::vector<int> myvector;// set some values:for (int i=1; i<10; ++i) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9// using built-in random generator:std::random_shuffle ( myvector.begin(), myvector.end() );// using myrandom:std::random_shuffle ( myvector.begin(), myvector.end(), myrandom);// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}
5.计算一个函数的运行时间
# include <iostream>
# include <time.h>
using namespace std;clock_t start, stop;double duration;
int main(){std::ios::sync_with_stdio(false);start = clock();/** * My Function(); **/stop = clock();cout << double(stop - start)/CLOCKS_PER_SEC << endl; /*或者使用CLK_TCK 但我这里CLK_TCK无法使用*/return 0;
}
一些很少用到但是用到时又很抓鸡的代码相关推荐
- Excel表数据很少,内存占用很大
问题描述 一个Excel表中只有很少的数据,但是占用了很大的空间. 打开该Excel表发现,横向滚动轴或纵向滚动轴很长,但是没有数据(滚动轴能滚到的区域基本是这个sheet占用的区域) 通过Ctrl+ ...
- Java IAQ:很少被回答的问题
Q:什么是很少被回答的问题? 一个问题如果被回答地很少,有可能是因为知道答案的人很少,亦或是因为问题本身模糊不清.微不足道(但对你来讲可能很关键).我似乎发明了一个术语,但是它在一个信息量很大的叫做A ...
- Unix / 类 Unix shell 中有哪些很酷很冷门很少用很有用的命令?(转)
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 ...
- 世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
来自公众号:五分钟学算法 今天分享四个代码量很少,但很牛逼很经典的算法或项目案例. 1.no code 项目地址: https://github.com/kelseyhightower/nocode ...
- 郭的好象在推销,实在内容很少.
郭的好象在推销,实在内容很少. 转载于:https://blog.51cto.com/328241/255043
- 3星|《掌控大趋势》:全球当前政治经济形式的资料汇编整理,对未来的预测很少,也缺乏独到深刻的见解...
掌控大趋势:如何正确认识.掌控这个变化的世界 全书基本是当前全球政治经济形式的公开资料的汇编整理,对未来的预测比较少.个人看法书中也缺乏独到或深刻的见解. 总体评价3星,有一些参考价值. 以下是书中一 ...
- python中文名字叫什么-Python为什么取名为Python,很少人知道
原标题:Python为什么取名为Python,很少人知道 打开世界编程语言排行榜,出现在榜单上的语言名称多半都让人一头雾水.一些编程语言的作者会以「这种语言是什么」来命名语言,比如 BASIC.COB ...
- ensp启动设备蓝屏_为什么早期的Windows经常死机蓝屏,现在却很少发生?这些你都知道吗?...
往事不堪回首呀,试问当年有多少小伙伴的电脑被一些看起来很好用的小工具弄到蓝屏的呢?老实说哦. 但大家不妨想想,对比于今天的电脑,发生蓝屏死机的概率确实比以往少了许多,这是为什么呢?老毛桃涉猎了一番,据 ...
- 为什么项目开放源代码之后就变成死项目 很少或几乎不再更新
经常遇到一些好的.NET项目开放源代码之后,便很少更新.即使是大名鼎鼎的CodeProject中的文章中的代码项目,遇到问题时,留言或是主动给作者发邮件,都像石沉大海一样,得不到回复或解决,只好自力更 ...
最新文章
- 放大招了,送一波来自 Facebook、Google、网易、阿里的学习福利!
- 链表题目总结(第一篇)
- asp.net 学习的一些地址
- bzoj 5216 [Lydsy2017省队十连测]公路建设 线段树维护 最小生成树
- 学霸君袁荣喜:K12一对一辅导,这是一个收割的时代| MCtalk教育访谈摘录
- 求中位数_图解面试题:如何分析中位数?
- 在用 Eclipse 搭建 SAP Commerce Cloud 调试环境时,错误和正确的 buildfile
- Ubuntu镜像下载地址
- Collectiont和Collections的区别
- 三星魔术师软件安装:检测到漏洞 此程序将被关闭
- db2mysql下载_db2SQL命令
- Windows域控统一设置客户端桌面壁纸【全域策略生效】
- matlab中功率因数模块,最经典的功率因数控制器设计方案
- 无WiFi 条件下如何使用Xshell 串口访问树莓派终端
- 大一作业:c语言,用static变量编写一个函数fac(int n),此函数连续调用n次,可以依次返回1至n的阶乘值。最后用main调用fac函数输出1-5的阶乘。
- 【图像去噪】兴智杯论文复现赛——NAFNet
- 为什么建议大家使用 Linux 开发?爽!!!
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程
- 为什么注销账号的功能都没有?
- MySQL基础-传智黑马网课笔记