![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 89
gfgdsg
这个作者很懒,什么都没留下…
展开
-
DivideString
题目描述: 通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。 如果输入“abc def gh i d”,结果将是abc,def,gh,i,d, 要求实现函数: void DivideString(const char *pInputS原创 2014-07-23 14:34:48 · 600 阅读 · 0 评论 -
static静态变量的理解
参考:http://www.cnblogs.com/haimeng2010/p/3265051.html静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束(相反,而auto自动变量原创 2015-05-04 12:53:08 · 539 阅读 · 0 评论 -
C++ 内存分配(new,operator new)
本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一 new运算符和operator new(): new:指我们在C++里通常用到的运算符,比如A* a = new A; 对于new来说,有new和::new之分,前者位于std原创 2015-03-07 17:25:27 · 456 阅读 · 0 评论 -
美团网2014校招研发笔试哈尔滨站--链表翻转
1、链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6*/ListNode *reverseK(ListNode *head,int k){ ListNode *fakehead = new ListNode(0); ListNode *newhead原创 2015-01-20 21:57:05 · 728 阅读 · 0 评论 -
迅雷2014校招笔试编程题--求单链表的差集
/*已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。*/void Difference(ListNode **lista,ListNode *listb){ ListNode原创 2015-01-17 11:49:02 · 480 阅读 · 0 评论 -
Linux内存分配小结--malloc、brk、mmap
Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,获得真正物理地址; 3、如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表;如果此时物理内存已耗尽,则根据内存替换算法淘汰部分页面至物理磁原创 2015-01-14 14:54:35 · 32690 阅读 · 7 评论 -
setjmp与longjmp
1.setjmp(j)设置“jump”点,用正确的程序上下文填充jmp_buf对象j。这个上下文包括程序存放位置、栈和框架指针,其它重要的寄存器和内存数据。当初始化完jump的上下文,setjmp()返回0值。2. 以后调用longjmp(j,r)的效果就是一个非局部的goto或“长跳转”到由j描述的上下文处(也就是到那原来设置j的setjmp()处)。当作为长跳转的目标而被调用时,setjm原创 2015-01-30 15:39:24 · 360 阅读 · 0 评论 -
数组中出现次数超过一半的数字
//1,2,3,2,2,2,5,4,2 len=9 return 2;出现次数超过一半//元素在数组中出现的次数STL//各种排序void BubleSort(int num[],int len){ int i, j,temp; for (i = 0; i < len; i++) { for (j = 0; j < len -1- i; j++) { if (nu原创 2014-10-10 11:46:42 · 352 阅读 · 0 评论 -
大数相加(字符串解法)
#include#include#include#include#include#includeusing namespace std;//大数相加vector Add(vector &left,vector&right){ int mlen, len, i, c = 0; mlen = left.size() > right.size() ? left.size() :原创 2014-12-03 16:45:50 · 531 阅读 · 0 评论 -
互联网笔试机试经典--杨氏矩阵查找
定位法,时间复杂度O(m+n)。首先直接定位到最右上角的元素,再配以二分查找,比要找的数(6)大就往左走,比要找数(6)的小就往下走,直到找到要找的数字(6)为止,如下图所示://杨氏矩阵查找int col = 4;int row = 4;bool young(int array[][col],int search){ int i = 0, j = col - 1; int原创 2015-01-27 21:26:22 · 506 阅读 · 0 评论 -
找到两个字符串集合的交集
set SplitString(string str){ set split; char *cstr = new char[str.length() + 1]; strcpy(cstr, str.c_str()); char *temp = strtok(cstr, ","); while (temp) { split.insert(temp); temp = strtok(原创 2014-11-13 11:41:44 · 2862 阅读 · 0 评论 -
题目1121:首字母大写
http://ac.jobdu.com/problem.php?pid=1121原创 2014-08-29 10:57:54 · 484 阅读 · 0 评论 -
strcpy函数
#include#include#include#includeusing namespace std;char *strcpy1(char *strDest, char *strSrc){ if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc)原创 2014-07-23 14:48:58 · 339 阅读 · 0 评论 -
智能指针auto_ptr与shared_ptr详解
一.auto_ptr auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一些算原创 2015-05-04 12:32:13 · 773 阅读 · 0 评论