①在线生成图标的网站
http://www.ico51.cn/
http://www.xwidea.cn/
②vector、map 判断某元素是否存在、查找指定元素
1.判断某元素是否存在
vector<string> vStr;
int nRet = std::count(vStr.begin(), vStr.end(), "xiaochun");//判断vector中是否有
2.查找某个元素
方法一:
自己写循环遍历
方法二:
vector<string> vec;
vector<string>::iterator iter;
string gpcode="SZ000001";
iter = find(vec.begin(), vec.end(), gpcode);
if(iter != vec.end())
{
//vec中存在"SZ000001"
}
else
{
//没找到
}
二、map
1.判断某key是否存在
map<int, string> mapDemo;
int nRet = mapDemo.count(100);//判断mapDemo中是否有 key = 100 的元素
2.查找某个key
map<int, string>::iterator iter = mapDemo.find(100);
if (iter != m_Int.end())
{
//找到了
}
else
{
//没找到
}
③二分法查找法查找key值
#include<stdio.h>
#include<math.h>
#include<string.h>
int BS(int a[],int x,int n)
{
int start=0,end=n-1;
while(start<=end)
{
int mid=(start+end)/2;
if(x<a[mid])
{
end=mid-1;
}
else if(x>a[mid])
{
start=mid+1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int a[]={1,12,23,34,45,56,67,68,89};
int n=9,x;
scanf("%d",&x);
printf("%d",BS(a,x,n));
return 0;
}
④C++ vector 容器中删除第i项
v1.erase(v1.begin()+i);//本程序中,i设定为1,即删除第1个元素
⑤如何删除字符串中所有指定的字符
string s="-daas-j--kdj-al-";
string::iterator it;
for(it=s.begin();it!=s.end();it++)
if(*it=='-'){
s.erase(it);
it--;
⑥mfc如何关闭对话框
void NewButton::OnOK()
{ // TODO: Add extra validation here
CDialog::OnOK();
}
⑦MFC中实现单击按钮弹出对话框的方法
1、资源视图-->Dialog-->右键-->添加资源-->新建-->对话框-->对话框按右键--添加类。例:添加CNewDlg类,在所要调的代码中(按钮点击方法中),先加头文件#include "CNewDlg.h ",之后在按钮点击方法中:
void COnclickDlg::OnBnClickedOk()//第一种
{
CNewDlg Dlg;
Dlg.DoModal();//模态对话框
}
或
void COnclickDlg::OnBnClickedOk()//第二种
{
CNewDlg *dlg=new CNewDlg;//非模态
dlg->Create(IDD_DIALOG1,this); //第一个参数是对话框ID号
dlg->ShowWindow(SW_SHOW);
}
或
voidCOnclickDlg::OnBnClickedOk() //第三种
{
m_DemoDlg1.ShowWindow(SW_SHOW);
//需要在主体函数初始化里加上
m_DemoDlg1.Create(IDD_DIALOG1,this);
}
2、创建非模态的另一种方法
首先, 在工程的资源里面3个对话框(假设ID是IDR_MENU1, IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3);
其次, 对按钮响应的函数里添加一个COMMEND MESSAGE, 系统会自动生成一个函数, 在函数里面写以下代码
// TODO: Add your command handler code here
CDialog* dlg = new CDialog;//非模态
dlg->Create(MAKEINTRESOURCE(IDD_DIALOG1));
dlg->ShowWindow(1);
其他两项也一样的做法