C++删除map容器中指定值的元素
map容器是C++ STL中的重要一员,平时会遇到删除map容器中value为指定元素的问题,例如删除所有字符串为"123"或者能整除3的元素。
map容器是C++ STL中的重要一员,平时会遇到删除map容器中value为指定元素的问题,例如删除所有字符串为"123"或者能整除3的元素。
前面写了一篇文章《Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile》,里面的Makefile代码有个不好的地方需要修改。当编译.cpp文件时,使用的STD_OPT
变量仍然是编译.c文件时的参数-std=c99
,这个在C++中是不支持的。
之前遇到过要自己实现inet_aton
和inet_ntoa
函数功能的问题,这里总结一下。
网络字节序是大端模式,那么内存中的低地址存放的是数据的高位,内存中的高地址存放的是数据的低位。
inet_aton
是将IPv4地址(点分法)转换成对应的十进制整数;而inet_ntoa
是将十进制整数转换成对应的IPv4地址(点分法)。
遇到一个题,大概要求是写一个函数处理来去掉一个无序的整型数组(例如int i_arr[] = { 1, 2, 2, 3, 4, 2, 3, 5 };)中重复的元素,并返回最终的长度。
之前遇到过kill( pid, 0 )
的情况,由于平常没注意到kill函数的形参为0的情况,不知道它的作用。后面用man 2 kill
命令查看了下kill函数的说明,发现可以用来检测进程的存在情况。
在Linux C/C++程序中打印日志时,可能会由于需要打印未知个数的变量参数,那么vsnprintf
函数就排上用场了。这里使用一个简单的C程序例子,演示在打印源程序文件名和该打印函数所在的行号的同时,使用vsnprintf函数打印个数未知的参数变量。
由于Disqus不支持Markdown的原因,所以在评论中使用HTML标签和代码高亮就不像Markdown那样方便了。在查看了Disqus官方关于HTML标签和代码高亮的说明后,发现Disqus只支持原生的HTML标签和代码高亮方式。