He has been named as Scott Greene, a 46-year-old man from Urbandale, a suburb of Des Moines.
The first officer was found shot in Urbandale at 01:06 local time (06:06 GMT) on Wednesday. The second was found 20 minutes later several blocks away.
Both were sitting in their patrol cars when they were attacked.
The motive for the attacks is unclear.
What we know about the Iowa suspect
The fallen policemen have been identified as Urbandale officer Justin Martin, 24, and Des Moines Sgt Anthony Beminio, 38.
Speaking at a news conference, Sergeant Paul Parizek of Des Moines Police said: "What we can tell by looking at the scene is that it doesn't appear that either officer had an opportunity to interact with the suspect. It doesn't look like there was an exchange of conversation.
"There definitely wasn't an opportunity for these officers to defend themselves or respond to the attack. Both officers were seated in their cars and were shot while they were sitting."
A mobile phone video posted under Mr Greene's name in October shows a man complaining to police that a group of black people had hit him and taken from him a Confederate flag he was holding during a high school sports event.
The Confederate flag is widely seen as a symbol of slavery. It was also heavily associated with the man accused of killing nine black churchgoers in South Carolina last year.
Why Confederate flag is so potent in the US
How many US police die each year?
"I was peacefully protesting," the man in the video says.
"You have to understand that in the social climate that we're in, when you fly a Confederate flag in front of a group of African-Americans, that's going to cause a disturbance," a police officer replies.
Another video appears to show a photo of Mr Greene holding the Confederate flag in front of several black people.
Police have confirmed that Mr Greene was involved in an incident at the school involving the waving of a Confederate flag in front of black people.
Sergeant Paul Parizek said Mr Greene had identified himself to a state employee just before his arrest.
"It's my understanding... he flagged down an employee of the DNR [Department of Natural Resources], presented that ID to that employee and asked that that employee call 911.
"Mr Green was taken into custody without incident. There were no injuries of any officers or Mr Green during the arrest."
Iowa Governor Terry Branstad said in a statement that the killings were "an attack on the public safety of all Iowans".
US Attorney General Loretta Lynch said: "Violence has no place in the United States of America.
"And when that violence is coldly and deliberately directed at those who risk their lives to enforce the law and to keep us safe, it is especially intolerable.
"This tragic incident is yet another reminder of the tremendous dangers that law enforcement officers face each and every day.  The men and women in law enforcement deserve our gratitude and our respect."
Police in the US state of Iowa say they have arrested the suspect in the "ambush style" killing of two police officers.