|
Hello, how do I access the element which resides a vector of set. The codes are show below.
vector< set<int> > objSetVt;
set<int> objSet1;
objSet1.insert(2);
objSet1.insert(4);
objSet1.insert(2);
objSet1.insert(7);
set<int> objSet2(objSet1);
set<int> objSet3(objSet1);
objSetVt.push_back(objSet1);
objSetVt.push_back(objSet2);
objSetVt.push_back(objSet3);
vector< set<int> >::iterator objVtItr;
for(objVtItr = objSetVt.begin(); objVtItr < objSetVt.end(); objVtItr++)
{
//??? How to access the element now
//objVtItr[0][0] <-- this give compile error
}
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Anthony,
Unlike the vector class the set class does not have operator[]. A set is a sorted non-repeating collection, so you have to use the set's find() method.
In you particular case if you want to access the 7 of your set in the first vector you can use:
<br />
int iTest = *objSetVt[2].find(7);<br />
However if there is no 7 in the set the value of iTest will me meaningless. So You must always check:
<br />
set<int>::iterator it = objSetVt[0].find(7);<br />
if (it != objSetVt[0].end())<br />
int iTest = *objSetVt[0].find(7);<br />
Ivor S. Sargoytchev
Dundas Software
|
|
|
|
|
Does STL support unicode. if so how do i use it,
Certain functions like lstrcpy under unicode takes unsigned short* as input parameter in that case STL string failes.
Any idea bout it.
My God is more powerfull Than Your God. (the line that divides the world)
|
|
|
|
|
Try looking at std::wstring - that's an STL basic_string instantiated with wchar_t as the character type. There are also wchar_t streams as well.
And if 16 bits isn't wide enough, try using something like std::basic_string<unsigned long> .
And you can do something like
typedef std::basic_string<TCHAR> tstring;
to get a typedef that should work under ASCII or Unicode.
Stuart Dootson
'Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p'
|
|
|
|
|
Stuart Dootson wrote:
And if 16 bits isn't wide enough, try using something like std::basic_string<unsigned long="">.
But then you'd have to define character traits for unsigned long I reckon.
--
Sancte Míchael Archángele, defénde nos in proélio contra nequítiam et
insídias diáboli esto præsídium. Imperet illi Deus, súpplices deprecámur:
tuque, princeps milítiæ cæléstis, Sátanam aliósque spíritus malígnos, qui
ad perditiónem animárum pervagántur in mundo, divína virtúte,
In inférnum detrude. Amen.
|
|
|
|
|
I guess it might depend on what you're doing - the following code compiles & runs as expected under VC7.1:
#include <iostream>
#include <string>
int main(int,char**)
{
std::basic_string<unsigned long> ls;
std::basic_string<unsigned long> ls2;
ls.push_back('A');
ls2 = ls;
ls += ls2;
ls += ls;
ls += ls;
std::cout << ls.length() << std::endl;
}
There's a default implementation of char_traits in iosfwd .
Stuart Dootson
'Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p'
|
|
|
|
|
yes, but it's only defined for char and wchar_t, is it not?
--
Watcha' gonna do, when Hulkamania runs wild on you!?
|
|
|
|
|
|
True - guess who's not done much Unicode programming with STL I have with ATL and COM (BSTR), but not STL...
Stuart Dootson
'Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p'
|
|
|
|
|
I want to read some data to display from files and save some data to files, If having some samples, could you send to me? Thanks.
|
|
|
|
|
Try this:
fstream m_File;
ios::openmode m_Mode;
m_File.open(m_strFileName.c_str(), m_Mode);
while (!m_File.eof())
{
getline(m_File, strLine);
}
m_File.close();
// write to file
m_file << "Some text" << endl;
|
|
|
|
|
Thank you very much for your reply.
I need it and will try it.
Freehawk
|
|
|
|
|
I want to send a broadcast message, and then a lot of windows can receive and re-display datas which is stored in same memory. How to do? Thanks.
|
|
|
|
|
Hi mr hawk,
use this SendMessage(HWND_BROADCAST,yourMsg, yourwParam , yourlParam);
but this message should be a registered window message. coz this message should be unique so that every window can process it.
you can use RegisterWindowMessage API to create your own unique message.
Regards.
Abhishek Srivastava
Software Engg (VC++)
India ,Noida
Mobile no 9891492921
|
|
|
|
|
Thanks for your reply.
It is useful to me and I will try it.
Freehawk.
|
|
|
|
|
Are you using the ATL DBCLI templates?
If so, are you also calling Update() after calling SetData() ?
Steve S
|
|
|
|
|
If it's a wizard-generated one, then the odds are good that you don't need to call SetData(), just change the member data and call Update.
SetData is normally used in situations where you don't have automatic accessor population, if I remember rightly.
Steve S
|
|
|
|
|
I want to subclass some combobox controls on a dialog to handle WM_KEYDOWN msg (to delete contents using DEL key).
1. I`m using CContainedWindow. I use the function:
OnKeyDown(TCHAR nChar, UINT nRepCnt, UINT nFlags) with MSG_WM_KEYDOWN in ALT_MSG_MAP(1).
For one control, it's ok (works fine), but what if I want to subclass more than one and redirect all WM_KEYDOWN msgs to the same function ? How can I tell what control is receiving the message ? The m_hWnd member points to my dialog wnd.
2. I also tried the DDX way, using DDX_CONTROL and defining:
class CCombo: public CWindowImpl<ccombo, ccombobox="">
and defining my controls of this class, but the compiler gives me an error saying that SubclassWindow is not a member of CComboBoxT<class atl::cwindow="">
How can I do it using #1 and what am I doing wrong with #2 ?
Thanks.
|
|
|
|
|
1) See CWindowImpl::GetCurrentMessage() . You'll find the recipient HWND in the MSG-struct, i.e. GetCurrentMessage()->hwnd .
2) That's because CComboBoxT doesn't derive from CWindowImpl which is the template which implements SubclassWindow. CComboBoxT is just a wrapper for an already existing window class, thus it isn't supposed to subclass another class. I never use DDX-stuff, so I wouldn't know how to deal with it. :shrug:
--
Watcha' gonna do, when Hulkamania runs wild on you!?
|
|
|
|
|
Alright, I've managed to get buttons and all that working just fine, but I can't figure out how to get just a bitmap in the toolbar... In the google toolbar, for example, they have that lovely google logo over a button... I'd like that, but without the button. I've even gone so far as to make a button, and make it TB_INDEFINITE (or whatever it is, I'm not looking at my code), but I don't want it greyed out like that. I want it full color, but not clickable at all. I mean, I can have a button, but I don't want it to "click". Any thoughts, anyone?
|
|
|
|
|
I would like to use the substitution capabilities in the ATL server without the output going to the Web. All of the examples that I see have something like: m_HttpResponse << "Hello"; in the handler. I would like to be able to take the output of the handler and use it to build a single string that has all of the sustituitions made. Something like SRF in and HTML out. I have seen CLStencil and that gets me part way but I don't know how to code the handlers so the output is directed to a stream not the WEB.
Thank you.
Kevin Burton
rkevinburton@charter.net
|
|
|
|
|
How can I catch the focus in my ATL control which is put in HTML text in DHTML based IE toolband?
|
|
|
|
|
I'm using an free-threaded in-proc DLL server (written in ATL 7.0) which creates a separate thread for asynchronous I/O. If I terminate the separate thread by an interface command (using a terminate event to signal the thread's WaitForMultipleObjects loop), everything works as expected - the thread terminates, and any subsequent GetExitCodeThread call shows the proper exit code.
However, if I wait for COM to call DllMain with DLL_PROCESS_DETACH and then try to terminate the thread, I find that the tread exits, but a subsequent GetExitCodeThread call will return STILL_ACTIVE, and a WaitForSingleObject(hMyThread, INFINITE) call will hang up forever. It seems as though once the
DLL_PROCESS_DETACH is called, the kernel can no longer see that the thread has exited.
Is this correct behavior? If so, why? I was expecting the kernel could always see the thread's exit.
Thanks for any help,
Richard
|
|
|
|
|
|
Thanks, Tim - that answers it!
- Richard
|
|
|
|